Untangle snapshot mapper

Also fixed performance issue with `StructEncoding` arbitrary
At the moment the versions are read as strings, i assumed it was intentional so left this as string