Maybe a script that updates the sv_maplist cvar every time a map from the maplist is loaded
Something like this:
switch (getcvar "mapname") {
case "dm/mohdm1":
local.maplist = "dm/mohdm2 dm/mohdm3 dm/mohdm4 dm/mohdm1"
break;
case "dm/mohdm2":
local.maplist = "dm/mohdm3 dm/mohdm4 dm/mohdm1 dm/mohdm2"
break;
case "dm/mohdm3":
local.maplist = "dm/mohdm4 dm/mohdm1 dm/mohdm2 dm/mohdm3"
break;
case "dm/mohdm4":
local.maplist = "dm/mohdm1 dm/mohdm2 dm/mohdm3 dm/mohdm4"
break;
default:
break;
}
if (getcvar "sv_maplist" != local.maplist) {
setcvar "sv_maplist" local.maplist
}