Merge more upstream. This branch seems to work fairly well. Upstream crashes on level load. And I can't figure out why.