As usually, unpacked .bin with serz utility into .xml
edited these lines:
<CameraLeftOffset>
<cRVector3>
<X d:type="sFloat32" d:alt_encoding="000000C0CCCCF43F" d:precision="string">1.3</X>
<Y d:type="sFloat32" d:alt_encoding="000000C0CCCC0840" d:precision="string">3.1</Y>
<Z d:type="sFloat32" d:alt_encoding="00000000000022C0" d:precision="string">-9</Z>
/cRVector3>
</CameraLeftOffset>
<CameraRightOffset>
<cRVector3>
<X d:type="sFloat32" d:alt_encoding="000000403333F3BF" d:precision="string">-1.2</X>
<Y d:type="sFloat32" d:alt_encoding="0000000000000A40" d:precision="string">3.25</Y>
<Z d:type="sFloat32" d:alt_encoding="0000000000002240" d:precision="string">9</Z>
</cRVector3>
</CameraRightOffset>
I touched only numbers, not everything else.
Loco failed to load.
Also all SD40-2 stopped to work (including UP SD40-2 supplied with Cajon Pass, which I never touched)
I replaced edited cab properties with original, deleted blueprints.pak - problem still exist
Loco won't run neither in scenario nor in quick drive
When I start I see this:

and in 20 seconds or so, sim crashes with dump

content from logmate:
Assets\JL\CP\TemplateRoutes\CPMountaincp.bin appears to contain invalid data
Verify failed:
cDriverInterface.cpp : 1058
Expression: scoreReasonWnd
Verify failed:
cDriverInterface.cpp : 1058
Expression: scoreReasonWnd
Assertion failed
ASSERT(mStartPos.isNearCurrentOrigin());
cCurveStraight::setTangent()
cCurveStraight.cpp : 372
Assertion failed
ASSERT(mStartPos.isNearCurrentOrigin());
cCurveStraight::setTangent()
cCurveStraight.cpp : 372
Trace mdump.cpp : 282 = Dump taken