Steve,
Sorry if this comes across rude, I honestly don’t mean it rudely. I don’t think I understand your post. Are you saying there is code already written that allows for instancing? Or is this a way you think instancing would work?
On a different note. Can someone move this post? The more I think about the less I think it belongs in Server Code Submissions. Development

evelopment or Development::Feature Requests are probable better places.
Also, can someone point me to where the code loads the map data and where the code sends the zonename to the client? The reason I am wanting those is because I think the shortname problem may be solved by:
Adding the zoneidnumber or access flag number onto the shortname for any instances zones
Then temporarily removing the zoneidnumber from the shortname when it is passed to the function that loads map data. The same would probably need done to the function that sends the zonename to the client. Actually anytime the shortname is called to reference other data this would need done. But the map data and client packet would be a good start.
Another thing is LoadZoneNames() in database.cpp will need reran each time a instanced zone is added/removed to/from the database.
Any thoughts?