To get new caves to spawn, on line 14 of control/cavern-generator.lua ,
if not global.gg_cavern_gen_inited then
can be replaced with
if not next(MapGenOptions) then
The bug is because the local state isn't stored in Factorio (only the table global) and the table is empty on the next load. Either keep the table in global and re-init on config change, or do the above so it gets rebuilt if it's empty