Does every packet Tor sends have a MAC tag concatenated onto the end of the packet paylod? If so, how do they avoid pocket size overflow? Or is the MAC for a whole stream of packets??
From to the Tor FAQ:
Tor transports TCP streams, not IP packets, so we end up automatically scrubbing a lot of the potential information leaks. Because Tor relays use their own (new) IP and TCP headers at each hop, this information isn't relayed from hop to hop.
The Tor Control Protocol goes into a lot more detail on what actually goes into the stream.
If you have specific questions for the Tor Developers, you can ask in StackExchange or join one of the official mailing lists for a more direct interface.