You know, there is two way to define the layout, in the entity definition file embedded in the bsp, and in an external layout file that can be created in game then saved.
So, I have some ideas…
Externalize the builtin layout, for example the default layout will be named like /layouts/mapname/default.layout
Enable the loading of a map that does not have the required entities (with a special switch like -edit) like the intermissions entities.
Disable the ending of a game if spawn are missings (same switch)
Allow a roll movement when using the -edit switch with -noclip
So, you just have to crate a map without intermission entities and without buildings, then you run daemon +devmap mapname +noclip +edit, it automatically disables the end trigger, spawns you somewhere floating in the map, and allows extra movements for wall/ceiling building. Then, you build, save the layout and put it in your pk3.
Also, I have the idea of some objects that could have a special state depending on the layout. For example a door which is locked in a layout and unlocked in another, or some lights that can be switched on/switched off depending of the layout (only doable with real time lights). With an -edit mode, we can imagine switching theses states in game then save the layout. So, a same large map will be loadable with different scenarii, not only changing spawn places, but changing some game logic like “which corridors are usable or which rooms are available”.