Runlevels (which are in fact runstates) are a SysV-ism; BSD does not do runlevels (apart from standalone, and fully networked, the only ones of actually any use in SysV).
SysV runlevels are a half-baked solution anyway, because it is not possible to map startup and shutdwon dependencies well enough into alphabetically ordered S(tart) and K(ill) scripts.
In BSD, and MacOS X, one can get the standalone level by booting with -s (s held down during boot on OS X), whereas fully networked level is obtained by default. It is also possible to go to standalone from full via init (don't know whether this works on OS X)