I have to disagree. The language spec and the docs on the Lua website are well written but the VM itself is a mess. It's a trainwreck of ambiguously named variables, minimal documentation, and overuse of macros to force inline code.
The Lua VM is a good example of something that isn't well written from a reading / understanding point of view, but is something that is well written from the 'it works' point of view.
http://www.lua.org/