The game already picks map based on location so just look at that code and we should be able to figure out how it works. TLDR, yes modders will be able to create scenes with specific terrain which should be prioritized when picking maps.
Worst case modders change the following code to change map selection.
GetPossibleBattleScenesForMapPosition() calls GetBattleSceneScoresForMapPosition() to get a list of scenes with a score and picks the highest scoring.
GetBattleSceneScoresForMapPosition() is the main function for map selection. It starts by getting terrains at the position by calling GetEnvironmentTerrainTypesCount() which samples the terrain at the position. Then GetTerrainByCount() is called which gets the most common terrain type based on the samples. Then GetSceneProperties() is called which determines forest density and filters out duplicates from the samples.
Then all scenes are scored.
If they are not of the correct terrain based on the samples they are discarded. If the scene has the correct forest density it is scored higher. The terrain types in the scene are checked and increases the score if it was in one of the samples, otherwise it reduces the score. The highest score is recorded and returned along with the possible scenes and scores.
So modders should be able to make scenes that are highly terrain specific, and possibly change terrain on world map, which will get prioritized when picking maps. Or someone could make a mod that changes scoring and sampling to ensure appropriate maps are picked, shouldn't be needed.
Terrain types currently are: Water, Mountain, Snow, Steppe, Plain, Desert, Swamp, Dune, Bridge, River, Forest, ShallowRiver, Lake, Canyon and RuralArea. Currently it doesn't look like custom terrain types are a thing but hopefully that wouldn't be too hard to add.
GetEnvironmentTerrainTypesCount() does 49 samples. It checks terrain at the exact position and 48 points around the position.
GetTerrainByCount() counts the terrain types in the samples and returns the one that occurs most.
GetSceneProperties() simply determines forest density and filters out duplicates from the samples.