Multiplexing large LED matrix
Hmm, let's start w/ power first:
3072 * 20mA * 2.1 = 130 W!

Your power supply can only give you about 5W. You're very much short there.

If you can, greatly reduce the size of your matrix.

One solution would be to use a desktop ATX power supply. Those have 5V lines through their hard drive connector and can give you lots of power. If you take the 5V you'll either need to design an LED drivers or you'll be burning (5V - 2.1V) * 20mA * 3072 = 180W. That's 180 watts of heat son! That's not gonna be good, or comfortable or usable. So you really need to design an efficient LED driver. 

The main issue with driving LEDs is that their voltage drop is not consistent for the same current between different batches, meaning one LED will drop 2.0 and another 2.1. If you just line them up an give them 5V you'll get noticeable variations.

You can buy efficient LED drivers and google is your friend but not your best friend. Because it will find you drivers to drive a string of LEDs, not a single one. You want the LEDs to be individually controllable so you'll need to put a regulator on every single one of these -- that's 3072 individual copies of the same circuit -- and then enable/disable those. That is a lot of work.

Yes you can use shift registers to control each regulator. How you wire up the shift registers very much depends on the 'frame rate' that you want to get out of controlling these LEDs. I'm not gonna go there right now because as you can see the power/design to drive each individual LED is quite high and complex.