Arduino 17x18 Controlled Single White LED Ceiling using 74hc595

Few problems still.

Way too many rows - or columns - one or the other.

For multiplexing, you simply cannot multiply the peak current by any number to achieve a given average current - eight or nine times is a more practical limit. In your layout diagram, you identify six "rings" of LEDs, it will probably be more practical to wire the matrix along the rings. The outermost ring would be 64 LEDs if it were complete (the corners are missing) so if you considered that as sixteen columns in four rows, the nextmost ring could also be 16 by 4 and you would have 16 by 8 with a one in 8 multiplex. You do the same with the next two inner rings. Total so far, 6 shift registers. For the "low side" drivers, you use two TPIC6B595 (for each pair of rings) which effectively contain your driver transistors and you need one current limit transistor per column only.

Your innermost two rings can be driven by a further two shift registers, again as a 1 in 8 multiplex. It will probably be just as simple to chain all the shift registers, using only three control lines and update them all each time you advance the multiplex. An extra control line if you fancy using the enable function to implement PWM on the whole array as one - noting of course, that you have to synchronise such PWM to the multiplexing - that is, you have to PWM each step of the multiplex (which you can also do in the multiplexing code) or have the PWM many times faster than the multiplex step.

Arguably you could do the whole job with just five MAX7219s as virtually the only components (five resistors and ten capacitors), if you could accept an average drive current of 8 mA.