Edit 2017: Before you read this rant of mine: All of this is based on 3ds Max 2015 and the early state of the MaxPlus API. If you are working in 3ds Max 2017+ you are much better off, see the comment section.
Edit 2022: Yea okay, nevermind: https://forums.autodesk.com/t5/3ds-max-programming/maxplus-is-no-longer-available-in-2021/td-p/9407304
I tried my best to like it, I really did. But MaxPlus is shit. There, I said it. Using it for development feels like running while simultaneously trying to saw your foot off.
Why the hell would you build a Python backend that looks more or less exactly like the C++ SDK? Since when is that a good idea (did someone say maya.cmds)? It looks like someone build a tool to batch-generate Python code from C++ and then build on top of that. You can do some things in an awkward way, but you run against walls all the time and have to revert to stupid hacks.
The documentation is a joke, a hollow lifeless skeleton. I feel sorry for the developers that put hard work in this, because the result is still close to being useless. But not all hope is lost, at least the thing surely is under heavy development, since it is the native Python backend for the most used 3D software package worldwide so they will improve and fix it soon, right? Oh. I wonder why no one pressed the Like button.
Any alternatives? Yes! Py3dsMax is still alive and kicking and actually was released open source separated from the prior heavy install package that was the blur tools. The instructions are great, I was able to clone and build the project within 10 minutes and it works like a charm: two-way interaction between Python and MAXScript, praise the Blur guys. Even works nicely in parallel to the MaxPlus engine.
Edit: I recently found that MaxPlus resets the sys.path whenever you import sys in any file. So basically all your toolset setup needs to be done per module instead of once in some entrypoint script. I am missing the "integration" in this "integrated" python interpreter...