You could try using Terrain | Roblox Creator Documentation and Terrain | Roblox Creator Documentation for removing/loading the smooth terrain and then using a separate method for collecting parts in the map (maybe just have separate folders with all the parts in it and reparent each folder). This is a code sample from the Terrain:CopyRegion page:
local terrainRegion = workspace.Terrain:CopyRegion(workspace.Terrain.MaxExtents)
workspace.Terrain:Clear()
wait(5)
workspace.Terrain:PasteRegion(terrainRegion, workspace.Terrain.MaxExtents.Min, true)
Alternatively you could try procedurally generating your terrain. This is how Minecraft creates maps that can always be loaded the same from a seed. It can be confusing and I’m probably not the best person to explain it, so I’ll just provide you with some resources and tutorials about it.
This tutorial is not centered around procedural generation but instead just scripting terrain in general.