nrf24l01 radio chip seems to return incorrect bytes - am I even talking to the device or I'm just getting pre-existing bytes in SPI_DR?
The SPI protocol is incorrect in the usage of Chipselect pin, so it's possible that the chip returns incorrect status byte. The CS pin should idle high, and be set low before performing a transaction on the bus, and set high after it.
It is also important to make sure that the bus signals match the signal diagram in the radio chip datasheet, i.e. the SPI clock must be low when CS is pulled low. So this relationship between SCK and CS was invalid during the first transaction, SCK was high when CS was pulled low so the radio chip could see that as the first rising edge and the rest of the bits are then shifted off by one. 0x1C shifted by one is 0x0E.