I don't see your system for setting-up pairing beyond the first round. Do you plan to collapse the list of remaining players after each round (keeping the relative ordering) and then simply matching up just like you do now? (1 vs 2, 3 vs 4, etc).
Also, may I suggest
Challonge for generating the bracket. It can also randomize seeds, so we don't have the sign-up order issue some are complaining about (frequent players tend to be frequent posters and were the first to sign up, making the bracket top-heavy, talent-wise.)