well, if you're loading different maps, why not do it this way:
Generic Class to Load map: named "A"
Class to load map type 1 inherits "A"
...more classes to load map types...
then simply have them load the map type and convert it to an internal format. You just need to load user map, convert to an internal map, then remove the user map. You can also take a pointer to A, and point it at whatever map type, then just use virtual functions in A, derived in the other classes.
Of course, this way might not suit you, but it shows what you could do .