Levelbuilder changes

this should have most of the changes from the level-builder branch cherry-picked onto finished to bring the two branches back in sync.