Large number of motor to control

You'd need to use shields that can be controlled independently - typically, the pins used by each shield are fixed so that they would all respond identically. I assume that's not what you want. This could be addressed by using a proto board to reroute the pins between each shield, but the costs add up sharply when you have twenty of everything. The number of pins would also be problematic on a UNO with that many outputs so I suppose a Mega would be needed.

I suspect you might be better off using motor driver cards rather than shields that plug directly on to the Arduino so that you can control the pin assignments directly instead of having to reroute the pin headers. For that many, I'm sure it would work out considerably cheaper to make your own H bridge drivers, if you're able to deal with breadboard soldering and electronics.

I suspect that the people who make Arduino controlled robots will be able to give you chapter and verse on this, might be worth a search for a robotics forum.