Static analysis of legacy projectile critical-clamp / Power order

Latest stable report target: 26.52 Hotfix, Android manifest versionName 1.26.52.3.
Gameplay history: the reporting player had already encountered this problem in 26.40 (including a recollection of 26.40.5). The first affected release has not been established by binary comparison.

Analyzed installation archives (not uploads; original files were not modified or executed):
Older: 1.26.30.5_v8a.apk
  manifest versionName 1.26.30.5, versionCode 972603005, package com.mojang.minecraftpe
  archive SHA256 03e0e516636913157aa6f6362eee32527daa4cf1e2fec7abef72f2cea04fedbc
  lib/arm64-v8a/libminecraftpe.so SHA256 433c79ce83e9862b45405b09a215e2e10f5dc9858b681c75f4ce3ea670236970
Newer: Minecraft_1.26.52.3.apks
  base.apk manifest versionName 1.26.52.3, versionCode 972605203, same package
  archive SHA256 edd9b1b342a5be437fcb1f87da84298592251ace148b3e0e3c2dd66a3eb7ade4
  split_config.arm64_v8a.apk member lib/arm64-v8a/libminecraftpe.so SHA256 5f5baf8e9ded92432e4c2cc9ff58a9313245323e8ca53ce37c169cc720e757c4

Six matching legacy arrow entity JSONs are semantically identical: vanilla, vanilla_1.16.100, vanilla_1.17.20, vanilla_1.20.40, vanilla_1.21.40, vanilla_1.21.120. All these JSONs declare format_version 1.26.0. Player-arrow fields include damage=1, power_multiplier=0.97, semi_random_diff_damage=true and critical min/max 9/10.
The newer archive ALSO includes redesigned vanilla_1.26.40 / vanilla_1.26.50 arrow content. This report isolates OLD-FORMAT compatibility, not every symptom of current vanilla bows.

Older ARM64 native impact routine (ELF virtual addresses):
  RTTI ImpactDamageSubcomponent -> vtable -> routine 0xcb06fc0.
  Critical calculation 0xcb07454-0xcb0746c.
  Critical max/min clamp 0xcb07464-0xcb07490.
  Arrow enchantment level read 0xcb07494; Power multiplier applied 0xcb074bc.
Newer:
  Corresponding routine 0xbce4a30.
  Power handling 0xbce4da0-0xbce4dc0.
  Critical calculation 0xbce4e78-0xbce4e8c.
  Critical max/min clamp 0xbce4e88-0xbce4ea4.

Min/max identities were checked using parsing/serialization code and key strings, not merely matching struct offsets. Their object offsets differ between builds. Bow's enchantment retrieval writes the level to the corresponding arrow field. Power's native multiplier in both builds is 1.25+0.25*level.

Order difference:
Old: base -> critical -> critical bounds -> Power.
New: base -> Power -> critical -> critical bounds.
With bounds 9-10 and Power V, old native-stage critical result can be 22.5-25; new result is clamped to 9-10. These are conditional native-stage calculations, excluding add-on custom levels, armor, absorption and final rounding.

Limits:
- Supplied APK signatures were not authenticated; conclusions apply to these version-identified binaries.
- 26.35 and 26.40.5 binaries were not inspected, so the first changed release is unknown.
- No controlled Minecraft runtime reproduction was performed by the investigator.
- RLCraft's extra attack-level damage path has not been fully reconstructed.
- The attached reproduction setup contains only stock legacy arrow content plus an optional passive observer; it has passed archive/static checks but has not been imported or runtime-tested.

Question for Mojang:
Was applying Power before the legacy critical clamp intentional? The 26.40 changelog says older-format projectile content is upgraded to preserve behavior. Should legacy definitions retain clamp-before-Power semantics, or is this an unintended compatibility regression?
Official changelog: https://feedback.minecraft.net/hc/en-us/articles/47787720931213-Minecraft-Bedrock-Edition-26-40
Related general bow report: MCPE-241704. Its vanilla damage/trajectory symptoms may have other causes; a common root cause has not been established.
