Untangle snapshot mapper

Also fixed performance issue with `StructEncoding` arbitrary
Isn't that what is happening anyway? The context still can't be changed because of the types.