Yep, I figured that out. I noticed that the last line in chat was it using allowmod on itself, so I disabled that line and found that it didn't crash before allowing itself, and would crash if I then used allowmod on it. Speaking of which, what does it need mod loading permissions for? Is it creating the new mutations on the fly and then loading them in as separate mods?
YellowAfterlife changed some of the mutations in NTT so that they can scale with values other than 0 or 1 (2 for rhino skin? +8 HP). I decided to use that instead of writing the mutations myself (at least, for most of them), but that would mean once the scale isn't 0 the mutation would never show up again and you'd eventually be narrowed down to one choice (last wish, it appears if you level up but have all mutations).
The way to work around this was to make "dummy" mutations that look just like the vanilla ones but have no function, and they appear instead of regular mutations. When a dummy mutation is chosen it adds 1 to the vanilla scaling and makes itself available again so you're never forced into only last wish.
You'll notice after loading the mod there's a bunch of .skill.gmls numbered 1-29, these are the generated dummy mutations. It's not required that they get generated by the mod, and if you'd like I can upload a different build where they're included in the folder. merge.mod.gml wouldn't require /allowmod permission in that case and the fake mutations would be included in the main.txt.
(Sorry for the long comment.)