diff --git a/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_VNAVPage.js b/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_VNAVPage.js
index 427f20ca7..735d295d6 100644
--- a/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_VNAVPage.js
+++ b/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_VNAVPage.js
@@ -89,11 +89,11 @@ class B747_8_FMC_VNAVPage {
n1Cell = n1Value.toFixed(1) + "%";
}
- let weightIndex = SimVar.GetSimVarValue("TOTAL WEIGHT", "pounds") - 608000;
- let maxFltLevel = 431
- if (weightIndex >= 0){
- maxFltLevel = 431 - (weightIndex / 362000 * 110)
- }
+ //Calculate maximum Flight level - uses linear regression derived formula from actual aircraft data
+ let currentWeight = SimVar.GetSimVarValue("TOTAL WEIGHT", "pounds");
+ let weightLimitedFltLevel = (((-0.02809 * currentWeight) + 56571.91142) / 100);
+ let maxFltLevel = Math.min(431, weightLimitedFltLevel);
+
fmc.setTemplate([
[crzPageTitle, "2", "3"],
["CRZ ALT", "STEP TO"],