you can prevent that cluttering with proper move orders. You have to do a lot of pathing yourself though. Especially around small hills, you must give multiple small distance move orders to get them to move over a hill without cluttering.
It is good practice to always use a line movement, (even with two units!). When you are moving a larger group that exists of multiple types you want to move each group individually with, again, a line for each group.
You do this by either assigning each type of unit to a control group and go over them like this: 1 mousedrag 2 mousedrag 3 mousedrag 4 mousedrag etc.
Or you use a selection hotkey to select "all of the same type on screen" and go:
click unit, selectionkey, mousedrag, click unit, selectionkey, mousedrag, etc