This works for single player in all the instances I have tried:
1) startmap_named_start = 0,
2) startmap_undergate_intro_rockgate,
3) startmap_start_in_name,
4) startmap_same_as_gamedir,
5) startmap_alphabest,
If the gamedir contains a map named "start", you have the start map.
Failing that, if the gamedir contains a map named "undergate", "intro" or "rockgate", you have the start map.
Failing that, use any map that has the name "start" in it (strstr (mapname, "start"))
Failing that, use any map that has the same name as the gamedir (gamedir lunsp1, use map lunsp1)
Failing that, due to lack of information use the highest alphabetical match.
(This is, of course, excluding health boxes and such.)
And, to my surprise, this method revealed to me that NE_RUINS has a map named start. 99% of the time I played that typing game "ne_ruins; map ne_ruins"