Using Grand Master / Master / Slave ATmega's

I am working on a large project, and I need ALOT of I/O pins... I cound use one Atmega 1280 with shift registers, but it has to do alot of thinking, so I want alot of RAM... I am basically asking if I can have one Grand Master ATmega 644P to enterface with the computer and the Master ATmega 644P's... Those Masters would then communicate between the Grand Master and the Slaves... The slaves would then run thier duties... Is this at all possible?

BTW: I will have enough I/O pins for the Tx / Rx connections, I just don't know if the software side is posible...

Yes, it is possible, it will cost a lot of time and money, though I'm guessing there'll be a way that is both cheaper and easier to implement.

Having such a network setup poses huge debugging problems. Difficulties escalate exponentially with the number of nodes and especially with the numbed of different tasks they have in the network. You should seriously consider adopting some of the known serial communication protocol such as MODBUS (there are AVR software stacks for it) or something similar.
Anyway in your case as with any complex task the divide and conquer approach is the best - implement submodules of your system until they are stable, and then connect them.

If you want lots of I/O then the way to go is to use a port expander, they are much easer to use than a shift register. The I2C MCP23016 gives you 16 I/O on the I2C but and the MCP23S17 that does the same thing with SPI. The great thing about these chips if you are using them as an input is that there is an output pin that changes if any of the 16 inputs change. That way you don't have to be constantly reading in all 16 bits to see if anything has changed.

Ok, I was trying to keep this low key, so it would eb a big surprise to everyone, but that isn't going to happen... Anyways, what I am doing is makign an RGB lighting system for my room... I need two control panels and a bunch of RGB led sets... They need to be both computer and control panel controlled...

Would I be able to send soemthing like "3.9 (Commands here)" and have that represent master 3 and slave 9 and then there would be a command like (digitalWrite(ledPin, HIGH);)? That is my basic idea... The Grand Master calculates the guidence numbers... theMaster reads those numbers, and if it is the one being talked to, it sends the message to the appropreate Slave? I will try to make a diagram to make it simpler...

It sounds like you want to reinvent DMX
http://www.arduino.cc/playground/Learning/DMX