anchor.diff:  	if(chosenmap == "Custom")
   		message_admins("[key_name_admin(usr)] is changing the map to a custom map")
   		log_admin("[key_name(usr)] is changing the map to a custom map")
  -		var/datum/map_config/VM = new
  -
  -		VM.map_name = input("Choose the name for the map", "Map Name") as null|text
  -		if(isnull(VM.map_name))
  -			VM.map_name = "Custom"
  +		var/datum/map_config/virtual_map = new
   
   		var/map_file = input("Pick file:", "Map File") as null|file
   		if(isnull(map_file))
  
positive.code: 	set name = "Change Map"
  	var/list/maprotatechoices = list()
  	for (var/map in config.maplist)
  		var/datum/map_config/VM = config.maplist[map]
  		var/mapname = VM.map_name
  		if (VM == config.defaultmap)
  			mapname += " (Default)"
  
  		if (VM.config_min_users > 0 || VM.config_max_users > 0)
  			mapname += " \["
  			if (VM.config_min_users > 0)
  				mapname += "[VM.config_min_users]"
  			else
  				mapname += "0"
  			mapname += "-"
  			if (VM.config_max_users > 0)
  				mapname += "[VM.config_max_users]"
  			else
  				mapname += "inf"
  			mapname += "\]"
  
  		maprotatechoices[mapname] = VM
  	var/chosenmap = tgui_input_list(usr, "Choose a map to change to", "Change Map", sort_list(maprotatechoices)|"Custom")
  	if (isnull(chosenmap))
  		return
  
negative.code: 			to_chat(src, span_warning("Filename must end in '.dmm': [map_file]"))
  			return
  
  		if(fexists("_maps/custom/[map_file]"))
  			fdel("_maps/custom/[map_file]")
  		if(!fcopy(map_file, "_maps/custom/[map_file]"))
  			return
  		// This is to make sure the map works so the server does not start without a map.
  		var/datum/parsed_map/M = new (map_file)
  		if(!M)
  