I don't know how they coded the game (I don't really want to know or ). But if they used an array of improvement and used an index to acces it, and the index use a byte, then they have 256 possible indexes... Same as when you make a 256 colours palette image. In that case, the TRUE limit IS 256. Just try to had a 257th colour in a 256 colours image... Anyway, if they did used this limitation in the code, I think it's quite stupid because it has VERY little impact on memory (beside the limitation in the buildings number per se).