You don't connect shift registers as a tree. That would be awfully slow.
Instead, you connect them as chains. Shift registers are meant to be
chained by connecting the serial out of one register to the serial in of
the next one, while both registers share the latch and clock lines. You
can chain as many as you want this way: a chain of four 8-bit shift
registers behaves like a single 32-bit shift register. See for example
this Arduino tutorial on the
595 to see how the
chaining works.
There is an issue, however, in making long chains: whenever you want to
change the state of one single output you have to shift the whole chain
again. And the longer the chain the longer it takes. Thus it is more
efficient to put in a single chain outputs that you will likely want to
change together, and use independent chains for outputs that are most
likely going to change at different times.
As for the wiring, you need three Arduino pins to drive one chain of
registers: data, clock and latch. But you can share the data and latch
pins between many chains, as long as you have a dedicated clock pin for
each chain. You should then be able to drive n independent chains
using n + 2 Arduino outputs.
As for the power, you have to estimate your power consumption (not just
the shift registers, but also whatever they are sourcing current into)
and find a 5 V power supply big enough to power your whole circuit.