So... I start a server from a save game that is 21.1MB
Right away another client joins and has to download a total of about 30MB.
I understand that I don't upload the savegame to the client but the current state of the game. Still, it seems the uploaded data is compressed very badly or not at all.
CPU should easily be able to handle heavy compression algos considering the horrible IO of the upload. Where are your stream wrappers?

Cheers and keep up the great work!