nRF24L01+ module not sending data

That's a strange length to trigger some pointer copy, why?

void spiTransfer(byte registry, byte data[], int _length) {

  if(_length < 0){
    byte* intermediate = data;
    SPI.transfer(intermediate, -1*_length);

The configuration without any CRC seems very dangerous to me.

  spiTransfer((CONFIG | W_REGISTER), {0x52}, 1);  //configure as TX and disable all IRQs instead of data sent

If you intend to make something more understandable,
it should not contain so many magic numbers.