Note: I'm not 100% sure of any of this, and this is being kind of hastly written as I'm busy, but meh. I have also not had the time to look over the net code.
The 1518 recvfrom() buffer is fine. This is the buffer of what the server is not sending, but receiving. Even if someone is using a higher MTU than normal it may still be getting fragged by a router along the path(?). Reading the MTU of the server really does you no good either, you need to know the MTU of the clients. I also believe that the netcode reuses this buffer for every packet. It would be bothersome to figure out which connection the packet goes to, then allocate the buffer size you want and read the packet in. Also note that I can only think of a handful of packets that will even come close to this size. On the server sending side, items, mass spawns, playerprofile, guildlist, /who, petitions, and maybe some of the gm commands. Now packets that approach this size that the client sends. The only one that comes to mind is /bug, obviously it is not used often.
__________________
++[>++++++<-]>[<++++++>-]<.>++++[>+++++<-]>[<
+++++>-]<+.+++++++..+++.>>+++++[<++++++>-]<+
+.<<+++++++++++++++.>.+++.------.--------.>+.
|