Glad I could help,
A minor improvement:
camera.x += (target.x - camera.x) * (1 - pow(1 - reductionpertick , time_step))
This is essentially the same equation, but there is no need to divide every frame by 16, which speeds things up a bit. Note that you'll have to use much smaller values for reductionpertick than for reductionpersecond ( reductionpertick = 1 - (1 - reductionpersecond)^(1/16) )
Because this will be calculated every frame another slight improvement may be calculating (1 - reductionpertick) beforehand:
leftdistancepertick = (1 - reductionpertick)
and use that result in the equation:
camera.x += (target.x - camera.x) * (1 - pow(leftdistancepertick , time_step))