Bidirectional level shifting on a bus of this sort usually implies asking for trouble.
The note you linked to in your question talks about "I2C bus and similar systems", which basically means it's talking about open drain lines. This is usually NOT the case in wide high-speed parallel lines, where open drain is generally much too slow to be able to operate at those speeds. Both sides actually drive the bus.
You can take a look at TI's TXB0108 and that family of bi-directional drivers. These are the closest I have ever seen to what you want to do, but I have a feeling they will not work. Bidirectional busses such as this basically use the fact that the side that wants control of the line drives the bus lines harder than the buffer's output drive strength. In practice, with a parallel bus of this sort, that is unlikely to be the case. If memory serves, you need 2mA of drive strength on your IO lines on both sides for them to be override the buffer's output. This is not something you should assume to hold for your devices. In fact, I'd wager that just hooking up the lines pin to pin probably won't do the job.
In the real world, there really aren't many truly bidirectional buses. You should look carefully at your lines (you claim 30 lines for 16 bit wide bus - look carefully at the other 14). Many of those lines may not actually be birectional. Once you decide which side is the Master, and how the bus is laid out, it should actually be possible to specify the direction of most of those 14 lines. Further, using logic and a combination of those 14 lines, you should also be able to specify the direction of the 16 data lines. Use this signal, constructed from a logical combination of your control lines, to switch the direction of a regular level translating buffer. Many of them will switch fast enough to make it look like the translation is transparent. To be safe, I would suggest a small series resistor in series with all the lines to deal with possible race conditions in the switching - The output drivers of your IC's and those of the buffer will take different amount of time to respond, and unless you leave a lot of dead time in between you will see some bus contention. Series resistors will limit the current through the bus lines through these transients. Keep these resistors as low as possible, though, since they will limit the speed of the bus on their own.
The TXB0108 doesn't like pull-up resistors lower than 50 kΩ. The TXS0108 seems to work with them but it's not obvious in what way it would be superior to a discrete solution.
– aiju May 13 '13 at 15:58