It looks like I misread the question but as Gustavo reckons it might be worth leaving up I will. I'm not really sure if the problem is the OP's misunderstanding of radio packets or if it is the FIFO he's not getting on with. Anyway, be kind if I've missed the mark on this.
A radio transmitter and receiver usually has a limited packet size because of the probability of data errors - the smaller the packet, the smaller the probability of error. The receiver should be able to detect an error by using the appended error check value. If an error is detected, the receiver requests the packet again.
If the packet was "long" there is a higher probability of error and it will take longer to retransmit the packet.
This is a "dilemma" when designing a packet radio system. Long packets are more error prone and take longer to retransmit hence effective payload data rate is slower. On the other hand a short or small packet is inefficient because it needs a bunch of bits (called a preamble) that allow the receiver's detector to lock-in and it needs a CRC (or error checking bytes appending).
Once the packet size is determined, transmitting (say) a 1MByte file is nothing to do with the radio's packet size rather, it is how you choose to embed a higher level of control into your protocol - let me say this again - this has nothing to do with the radio's packet size.
Trying to "hijack" the small packet transmitted by the radio to make life easier is fine but if you need to transmit something bigger then you need to apply a higher level protocol so that the receiving end can piece together the 1Mbyte file and understand when the file is completely received.