The way i have done it is that the editor uses the engine directly. So the level loading function all comes straigh from the engine. That way when i have a standalone executable that i release i can reuse the exact same loading function. Everything the editor does it uses the engine. That way you get what is WYSIWYG (What you see is what you get) type of editor. I have attached an screenshot of my 3d editor which i am currently working on just to give you an idea.
Looks like someone likes Unity