The 32 million keys in your solution must be sequential, which means it can't do 32 million arbitrary keys, which is what others thought you meant.
Interesting, yes I thought that it was arbitrary database solution for any random set of public keys, if the "database" need to be sequential you only need to store the starting point (33 bytes) and recalculate all the keys again each time that you need to use them, that is not useful, it is redundant.
Let guess that he only store one bit per publickey 1 if the key start with 02 and 0 if the key start with 03 something like that.. now that make sense with the calulations it was near only 1 bit per key.