Volume.cc: message maps

the diffstat speaks for itself.
I spent too long to understand both the old and the new code. The new is marginally better. :-|