Untangle snapshot mapper

Also fixed performance issue with `StructEncoding` arbitrary
I left it because i think @markhibberd wanted to do a review over all the arbitraries so wanted to flag this