You could make 2 classes: Region and City. Each City has an object relation with a Region. You store regions and cities in 2 different folders. And in the edit template of your class, you add an objectrelation for region and another for city. Both relation input fields should be dropdowns. The "Region" dropdown:
Or something like that. And then make a javascript function called changeCities(), which hides the cities from the dropdown, that don't belong to the selected region.
Of course, there's no kind of validation, so a user could actually pick a region and a city that doesn't belong to that region.
Maybe there's some kind of "Related Dropdowns" datatype somewhere.
With little effort, you can make a custom datatype operate on any custom data model (db table set), so if you do not need the regions/cities to be objects, you could backup Gabriel's idea with some lightweight 1:n db tables, and even provide UI for managing those tables in the administration interface. That would then work as one coherent attribute of a class.