It depends on how you want to generate the terrain. Using Element might be the easiest because with its cloner you can clone on a surface and then offset the position so the clone(s) will move up and down to keep in contact with the surface as they change position on that surface.
Some of the auto orient is built into Element but you could get around any other issues with expressions or follow path or orient to path etc.
I don’t think there is way to do with this up and down hill thing with Mir. While you should be able to extract position info for each “point” in the field array, i’ve not played with this so I don’t know if the expressions can see this level of data. But in theory you could link path data (in AE2017 and above) to the Mir data so that you could then use orient to path and follow path to make this work.
This seems like a project that might be better executed in a 3D package. What usually happens is, as you get deep into it, you want to add one more feature (like wheels turning correctly as they rumble over uneven terrain) and then you will wish you had started in 3D. But if you can plan ahead for all requirements it is doable in 2.5D.