Yeah, for more generic application, 74HC, HCT, LV, LVC, AHC are likely choices (and whatever TinyLogic equivalents are to them). Check the datasheets/family databooks: they're each suitable for different purposes, varying in voltage range, input protection (HC(T) has double clamp diodes, LV(C) has GND clamp and zener/snapback), speed (LVC faster than HC), output enable (LVC I think all has a no-bus-loading feature when unpowered?), and available functions (there's a 74(LS)06 with 30V open-collector outputs, but no HC; there's a 74HC05 with open-drain outputs and clamp diodes to supply, but no 74LVC05, however there is a 74LVC06 without clamp diodes but only a 6.5V voltage range; etc.).
The only annoyance with SPI is, you often need 3/1 forward/backward, so you need two different devices to translate, or four single channel devices. Sometimes it can be convenient to use something simple like divider resistors, a diode gate, or a single transistor for the odd one out.
The above notes about signal quality and transmission lines are spot on. These signals are fast, particularly from the faster logic families, and from most CMOS ASICs (MCUs, etc.). If you have poor grounding, poor signal routing, poor cable allocation (e.g. not using ribbon cable with every other grounded, or using multiconductor cable with random assignments or few grounds), you will get spooky, sequence-dependent behavior. Maybe it fails on a single transaction, maybe it's good for a hundred, or a thousand, maybe it only works when a certain bit pattern is emitted, or when another device is communicating at the same time (introducing coincident noise across the board, coupled through supplies or nearby traces).
I've seen it happen just on solderless breadboard, with an ordinary ATMEGA32 and 6" jumpers. Slip a ferrite bead over 'em, no problem.
I will add the modification, traces aren't usually 50 ohms; 70 to 100 is more typical, especially on 2-layer board (pour ground plane both sides and stitch with plenty of GND vias!). Narrower traces have higher impedances. To see what, use a calculator, and choose the appropriate geometry: microstrip most common for 4-layer boards; 2-layer with ground pours both sides is coplanar waveguide with ground (CPWG).
The exact impedance hardly matters, just so long as it's modestly well terminated -- say, within 30% of the source and/or load resistance. (Same as the 30-70% of supply that CMOS input thresholds typically have.) CMOS output pins are usually on the lower side (30-70 ohms), so a little resistance (22-47 ohms) in series with the pin driver, located at the driving pin, can be a great help. And you can always use higher resistances, or ferrite beads (with Z @ 100MHz being comparable -- typically 100-500 ohms), to get slower edges (more filtering), when speed isn't critical.
It's possible to design multi-master buses and other topologies as well, though I won't go into detail at this time. Just to note that, when you have a pin driving traces going in multiple directions, or traces teeing off, the impedance is different, and those structural changes need circuit changes to support them (and may also require a reduction in bandwidth, or a change in transmitter/receiver type).
Tim