Using an Arduino to Emulate a CD4021 Shift Register for Controlling an NES
The following will compile. And should do what the Slave SPI as discussed above:
It is note worthy that on a UNO w/328 that much of the byte wide ports don't have all 8 pins available. 

// Note that Port B has the SPI and Port D has the UART so start testing with C[0..5]
// where C[6,7] will likely be zero. Once working then later move to Port D which has
// all 8 bits, but without any debug on the uart.
void setup (void)
{
  pinMode(MISO, OUTPUT); // have to send on master in, *slave out*
  SPCR |= _BV(SPE);      // turn on SPI in slave mode
  SPCR |= _BV(SPIE);     // turn on interrupts
  attachInterrupt(0, latch, FALLING); //pin 2 on UNO, could be other modes...
  // may need to tweak the SPI mode to match chips. Something for later
}  // end of setup

void latch() {
  SPDR = PINC; // grab Port C input and place it for upcoming shift.
}

// SPI interrupt routine
ISR (SPI_STC_vect)
{
  // ISR will occur after 8 bit shift out of prior contents of SPDR 
  // by Master SCLK with SS low
  SPDR = SPDR; // read moSI and write it out on next miSO for cascading.
}  // end of interrupt service routine (ISR) SPI_STC_vect

void loop (void)
{
  // don't really need to do anything.
}  // end of loop