One of the issues is that the encoding I'm using is extremely verbose. I discuss some of the details here
https://dropthemath.oblomov.eu/fm/finger-maze.md.html but basically: each square in the maze can be represented by 4 bits, one for each side, that tells you if it's open or closed. There are 16 possible tiles, and a letter mnemonic is associated with each. The “id” of a maze is basically a sequence of these mnemonics, plus some metadata (number of rows and columns, and the entry/exit cells).