@keks I agree that format-per-usecase is not good from a privacy perspective. That's something to address in the full metadata redesign. But this issue is only about legacy messages. Before the metadata redesign, I'll spec out a more efficient encoding for legacy messages as well, but there won't be any changes in semantics. And for the legacy stuff, that simply means one suffix per algorithm.
As for the 32 vs 64 bit question: I've written up some notes on finite integers as opposed to arbitrary-legth integers here. I just chose 64 bit fairly arbitrarily, and I'd want to consistently use the same varint format accross the protocol stack (here is what I intend to use for multikeys and multihashes, multiboxes would be the same but without any efficient length-encoding shenanigans).