Untangle snapshot mapper

Also fixed performance issue with `StructEncoding` arbitrary
Same comment as counter, I think this could just be the default implementation, and I don't think the warning is required.