Meanwhile I tinkered a little bit more with belt tension and settings and reached a perfect X and Y match.
But Z is still off by 2.5mm regardless what I try.
So I found an article that describes the calibration process by M92 command.
With it you can calibrate X,Y,Z and extruder lengths from expected value to reality value.
Another solution could be to reduce Z dimension for every object accordingly.
How do you calibrate your printer?
Here is the excerpt for Z Axis:
Calculating and inputting new value for the Z-axis: we use our formula to solve for our Z-axis motor.
Desired movement = 100
Actual movement = 100.5
Current M92 value = 2044
Input measurement/Actual measurement * Old M92 value = New M92 value 100/100.3 = .995024876
New M92 value = 995024876* 2044 = 2033.83 Now
Let’s input that New M92 value: in G:code type your New M92 value like so :
“M92 Z2037.89” then press enter.
In G:code type: “M500” then press enter. (this saves your changed setting).
In Gcode type : “M501” Now scroll up in your log and make sure your new M92 Value has been saved.