L293D , motors, and multiplexing; help!

I have a project where I need to drive 8 "tiles" each one with 6 motors (12v DC) in both directions.
The motors will stay off most of the time, with bursts of 1second in ine direction or another, one at a time.

I am looking for the most efficent, compact and economic way to drive them.

At the moment I use the L293D IC, one can drive 2 motors, but I still end up with 24 ICs, they take up space, and cost.

I can make h-bridges with just transistors and resistors, like the BD139 and BD140. Cost less than L293d
But for each motor I would need 4 transistors, so each tile (6 motors) would be 24 transistors + resistors, quite many, wieght will also add up too much.

Is it possible to use some kind of "multiplexing" of the output of the L293?
If so I could use just a few of them and use some multiplexers to deliver the output to all the motors.
Thank you very much!

No multiplexing is not normally possible, you need 4 switches per load for individual bidirectional
control (think about it), and an H-bridge is 4 switches. Any multiplexing would also need two fully
floating switches per load (which is 4 active devices unless using mechanical relays).

You might benefit from finding motors with integrated controllers, but finding the right motor at
the right price is probably just luck.

What is the size/power/specs of the motors?