First, there really isn’t such of a thing as a perfect config.lua. The idea behind the “Ultimate config.lua” and it’s brother “Modernizing the ultimate config.lua” (which you are using) was to get the top, left to be 0, 0 and the bottom, right to be display.contentHeight, display.contentWidth.
In full disclosure, at the time, this was a cover for my dislike for adding display.screenOriginX (and/or Y) to my objects I wanted to position around the top and left edges. It protected me from having to write the extra code to write display.actualContentWidth instead of display.contentWidth. As I’ve learned since this, this type of config.lua can be really bad depending on the type of app/game you’re making.
If you’re building a card game like Solitaire, where your card stacks should move depending on the device width. In this case using the calculated width/height config.lua can help you. But if you’re building Angry Birds (or the side-scrolling space shooter I’m working on in my spare time) where the distance from the player to the enemy needs to be a fixed distance or how the game is played changes, then it’s important to **NOT** use this type of config.lua. For business type apps it’s better to move the content area to where it’s anchored at the top, left and just let content flow down the page.
There are more situations where the “ultimate config.lua” causes more work than it helps. As such, we think it’s more important that you understand your config.lua, take the extra steps to add display.screenOriginX, Y to your top/left edge positioned objects than look for shortcuts.
Again, your config.lua isn’t likely the cause of your warping. I was just pointing out that zoomEven sort of does what a calculated config.lua attempts to do.
Instead, how about posting your build.settings so that we verify you’re storyboard based launch screens is correct.
Rob