Some people probably already know this, but this has only occurred to me today, and it really helped me understand the structure of a 16-cell.
First of all, although I have quite a good grasp of the hypercube already, I've always had trouble with the 16-cell. Knowing that it was the dual of the hypercube didn't help, since I just couldn't visualize the resultant shape after swapping edges and faces. Looking at wireframe projections of the 16-cell didn't help very much either, there were too many intersecting lines inside the bounding octahedron, and I couldn't really see where the cells are.
However, today it suddenly occurred to me that you can construct a 16-cell by tapering an octahedron in the +W and -W directions. By the tapering of a 3D object X, I mean to stack increasingly smaller copies of X on top of each other along the W-axis until it has shrunk to a point, and taking the resulting 4D trace. (Is there a better term for this process?) Of course, I'm considering the case where the size of the object decreases linearly.
Suppose we take a 3D octahedron and taper it in the +W direction. As we move along the W axis, the 8 triangular faces of the shrinking octahedron traces out 8 tetrahedral cells, ending at the +W vertex of the 16-cell. This gives us half of the 16-cell. Now we repeat this process in the -W direction, and we obtain another 8 tetrahedral cells directly opposite the first 8 cells. They meet at the -W vertex of the 16-cell. Now we have constructed the entire 16-cell.
I thought this was a very neat way of understanding the 16-cell, because it generalizes all the way from 1D. If you start with the 1D line segment (-1,1) on the x-axis, tapering it in the +Y and -Y directions will give you a 2D diamond (a square rotated 45 degrees). Tapering this diamond in the +Z and -Z directions gives you the octahedron. Finally, tapering the octahedron in the +W and -W directions gives the 16-cell. I suppose repeating this process will yield the 5D cross polytope, but I think I'll leave it at that. :-)