baseDir must be the full path to CATALINA_BASE. For domain and defaultHost I use the standard values "Catalina" and "localhost" respectively.
There is a one-to-one mapping between Service and Engine so they are created together. Navigate to this MBean and use the "createStandardServiceEngine" method to create a Service and an Engine. In the MBean tab in JConsole, you should see a number of Tomcat MBeans including one named "Catalina:type=MBeanFactory". Then start Tomcat along with JConsole and connect JConsole to your newly started Tomcat instance.
To try this out for yourself, you'll need to start with a standard Tomcat install (if building from trunk the contents of output/build will be fine) and reduce server.xml to the bare minimum. With the most recent changes to Tomcat 7 trunk (you'll need to build from svn or wait until 7.0.3 to use these features) it is now possible to start an absolute bare minimum Tomcat instance and perform all the configuration via JMX. It is this second objective that I am writing about today. Making it possible to fully configure a Tomcat instance over JMX.The JMX descriptions and the actual code had diverged over time and there were many missing entries as well as entries that no longer worked. Aligning the attributes and methods exposed via JMX with reality.
This year, Chamith Buddhika has been working on improving the JMX support. You may have seen that the Tomcat project participated in the Google Summer of Code (GSOC) this year.