Dual (Shift Up and Shift Down) SPI Level Translation
The first thing you need to do is look at your parts specifications more carefully. You may find that some of your links don't actually need translation at all. What are the input thresholds, are the inputs tolerant of voltages outside the power rails. It's pretty common for 3.3V devices to have 5V tolerant inputs. I don't know about 1.8V devices.

With the mosfet trick you only need one pullup to each rail, also if the translation is unidirectional and the driver is not using an open collector output you only need the pullup on the output side.

You also need to think about speed. At low frequencies the mosfet trick is fine but because of it's open collector nature it doesn't scale well to high frequencies. The resistors must be low enough value to charge the stray capacitance quickly enough to bring the lines to their appropriate "high" level in time. To an extent you can use smaller resistors to speed things up but then the higher currents cause more volt drop in the switching devices (both the level shifting mosfet and the output drivers in your devices) which may cause problems.