City states spawning next to ice seems like a bug to me:
Changing function CanPlaceCityStateAt() fixes most of the problem, but it still happens sometimes because AssignCityStatesToRegionsOrToUninhabited() doesn't call CanPlaceCityStateAt(), so that function should be changed too.
You can see my code that fixes this here:
https://github.com/samjooma/Community-Patch-DLL/tree/City-state-ice-spawn
Changing function CanPlaceCityStateAt() fixes most of the problem, but it still happens sometimes because AssignCityStatesToRegionsOrToUninhabited() doesn't call CanPlaceCityStateAt(), so that function should be changed too.
You can see my code that fixes this here:
https://github.com/samjooma/Community-Patch-DLL/tree/City-state-ice-spawn