This sounds an awful lot like yet another ProtocolBuffers. What, if anything, new does it bring to the table?
MessagePack uses type prefixes to describe the data. For instance an unsigned 8-bit int starts with a `0xcc` followed by a byte.
Since Protocol Buffers brings their original semantics, you must change lots of codes.
I wrote about the pros/cons of schema here: http://news.ycombinator.com/item?id=2836242