diff --git a/osu.Game/Database/StandardisedScoreMigrationTools.cs b/osu.Game/Database/StandardisedScoreMigrationTools.cs
index 24fe147593..6b3c549068 100644
--- a/osu.Game/Database/StandardisedScoreMigrationTools.cs
+++ b/osu.Game/Database/StandardisedScoreMigrationTools.cs
@@ -453,9 +453,14 @@ namespace osu.Game.Database
break;
case 3:
+ // in the mania case accuracy actually changes between score V1 and score V2 / standardised
+ // (PERFECT weighting changes from 300 to 305),
+ // so for better accuracy recompute accuracy locally based on hit statistics and use that instead,
+ double scoreV2Accuracy = ComputeAccuracy(score);
+
convertedTotalScore = (long)Math.Round((
850000 * comboProportion
- + 150000 * Math.Pow(score.Accuracy, 2 + 2 * score.Accuracy)
+ + 150000 * Math.Pow(scoreV2Accuracy, 2 + 2 * scoreV2Accuracy)
+ bonusProportion) * modMultiplier);
break;
diff --git a/osu.Game/Scoring/Legacy/LegacyScoreEncoder.cs b/osu.Game/Scoring/Legacy/LegacyScoreEncoder.cs
index cf0a7bd54f..95f2ee0552 100644
--- a/osu.Game/Scoring/Legacy/LegacyScoreEncoder.cs
+++ b/osu.Game/Scoring/Legacy/LegacyScoreEncoder.cs
@@ -36,9 +36,10 @@ namespace osu.Game.Scoring.Legacy
/// - 30000007: Adjust osu!mania combo and accuracy portions and judgement scoring values. Reconvert all scores.
/// - 30000008: Add accuracy conversion. Reconvert all scores.
/// - 30000009: Fix edge cases in conversion for scores which have 0.0x mod multiplier on stable. Reconvert all scores.
+ /// - 30000010: Fix mania score V1 conversion using score V1 accuracy rather than V2 accuracy. Reconvert all scores.
///
///
- public const int LATEST_VERSION = 30000009;
+ public const int LATEST_VERSION = 30000010;
///
/// The first stable-compatible YYYYMMDD format version given to lazer usage of replays.