Hey all, I think I found a really nice and smooth way to do this. My code looks like this:
lerp(LayoutScale, min(WindowHeight, WindowWidth) / (distance(sprite1.ImagePointX(0), sprite1.ImagePointY(0), sprite2.ImagePointX(0), sprite2.ImagePointY(0)) + (max(sprite1.Width, sprite1.Height) + max(sprite2.Width, sprite2.Height)) / 2 ) * 0.70, 0.5 * dt)
The 0.7 is how much you want the "default zoom" to be, and the 0.5 controls the speed of the zoom.
I use the above formula with these scrolling values for System: Scroll to Position:
X: lerp(scrollx, (sprite1.ImagePointX(0) + sprite2.ImagePointX(0)) / 2, 0.7 * dt)
Y: lerp(scrolly, (sprite1.ImagePointY(0) + sprite2.ImagePointY(0)) / 2, 0.7 * dt)
Let me know how this works for you guys and if it's just overcomplicated.