diff --git a/CHANGELOG.md b/CHANGELOG.md
index d81a0f9aeb9bf49dafadd25bb5d403e716e53158..fcc57ee5f5d28f5c079911da2339e0e4c406ca3d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,14 +6,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
 ## Unreleased
 
+* Antebellum Revivalism FS added
 * pit revamped
+* reCelebrityDebt event
 * added isVirile() function
 * added isHorny() function (check for sources of constant arousal)
 * added aggrosperm, livestock, and progenitor gene mods
 * added potency genetic quirk
 * added genetic height
+* added genetic breast size
 * vasectomies cut sperm release
-* fixes
+* fixes and code improvements
 
 ## 0.10.7.1-4.0.0-alpha.23 - 2023-01-15
 
diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js
index e01730f6e641a4266d3f41ae47a9a891cf1bd3ec..77ab60e0a02c94c6b7f746c30af2b9b1c5452797 100644
--- a/js/003-data/gameVariableData.js
+++ b/js/003-data/gameVariableData.js
@@ -228,6 +228,7 @@ App.Data.defaultGameStateVariables = {
 	verboseDescriptions: 0,
 	verticalizeArcologyLinks: 0,
 	weightAffectsAssets: 1,
+	oversizedBoobShrinkage: 0,
 	curativeSideEffects: 1,
 	disableLongDamage: 1,
 	// Last-used strings in Locate Slave
diff --git a/src/endWeek/player/prLongTermPhysicalEffects.js b/src/endWeek/player/prLongTermPhysicalEffects.js
index 0c1e0ad0817ba7f733555c7f4e5fcc3f7dad9b39..1aaae338632a5e86d1803364267bd3f17f316cdf 100644
--- a/src/endWeek/player/prLongTermPhysicalEffects.js
+++ b/src/endWeek/player/prLongTermPhysicalEffects.js
@@ -891,9 +891,20 @@ App.EndWeek.Player.longTermPhysicalEffects = function(PC = V.PC) {
 			}
 		}
 		// Oversized breast shrinkage
-		let triggerSize = PC.natural.boobs * 20;
-		if (PC.physicalAge <= 12) {
-			triggerSize *= (gigantomastiaMod === 2 ? .75 : .5);
+		let triggerSize;
+		if (oversizedBoobShrinkage === 2) {
+			triggerSize = 50000;
+		} else if (oversizedBoobShrinkage === 1) {
+			if (PC.physicalAge <= 12) {
+				triggerSize = (gigantomastiaMod === 2 ? 25000 : 15000);
+			} else {
+				triggerSize = 30000;
+			}
+		} else {
+			triggerSize = PC.natural.boobs * 20;
+			if (PC.physicalAge <= 12) {
+				triggerSize *= (gigantomastiaMod === 2 ? .75 : .5);
+			}
 		}
 		if (boobSize > triggerSize) {
 			if (V.arcologies[0].FSAssetExpansionistResearch === 0) {
@@ -903,7 +914,7 @@ App.EndWeek.Player.longTermPhysicalEffects = function(PC = V.PC) {
 							r.push(`Your breasts are larger than your body can possibly sustain without pharmaceutical intervention, and they <span class="change negative">naturally lose mass.</span>`);
 							PC.boobs -= 25;
 						} else {
-							r.push(`Your breasts are far, far beyond what a human body can sustain without pharmaceutical intervention, and they <span class="change negative">naturally lose mass.</span>`);
+							r.push(`Your breasts are far, far beyond what ${oversizedBoobShrinkage !== 0 "a human" : "your"} body can sustain without pharmaceutical intervention, and they <span class="change negative">naturally lose mass.</span>`);
 							PC.boobs -= 50 / gigantomastiaMod;
 						}
 						if (PC.geneMods.NCS === 1 && random(1, 100) > 50 * gigantomastiaMod) {
diff --git a/src/endWeek/saLongTermPhysicalEffects.js b/src/endWeek/saLongTermPhysicalEffects.js
index afcb240bdb3e2ceec29bb6939739d427adce48aa..7712e9fe5e80e1f5c8d6622f5dc9bbb258d6f3f8 100644
--- a/src/endWeek/saLongTermPhysicalEffects.js
+++ b/src/endWeek/saLongTermPhysicalEffects.js
@@ -1163,11 +1163,24 @@ App.SlaveAssignment.longTermPhysicalEffects = function saLongTermPhysicalEffects
 			}
 		}
 		// Oversized breast shrinkage
-		let triggerSize = slave.natural.boobs * 20;
-		if (slave.physicalAge <= 6) {
-			triggerSize = (gigantomastiaMod === 2 ? .5 : .25);
-		} else if (PC.physicalAge <= 12) {
-			triggerSize *= (gigantomastiaMod === 2 ? .75 : .5);
+		let triggerSize;
+		if (oversizedBoobShrinkage === 2) {
+			triggerSize = 50000;
+		} else if (oversizedBoobShrinkage === 1) {
+			if (slave.physicalAge <= 3) {
+				triggerSize = (gigantomastiaMod === 2 ? 25000 : 7000);
+			} else if (slave.physicalAge <= 12) {
+				triggerSize = (gigantomastiaMod === 2 ? 25000 : 15000);
+			} else {
+				triggerSize = 30000;
+			}
+		} else {
+			triggerSize = slave.natural.boobs * 20;
+			if (slave.physicalAge <= 6) {
+				triggerSize = (gigantomastiaMod === 2 ? .5 : .25);
+			} else if (PC.physicalAge <= 12) {
+				triggerSize *= (gigantomastiaMod === 2 ? .75 : .5);
+			}
 		}
 		if (boobSize > triggerSize) {
 			if (slave.assignment !== Job.DAIRY || V.dairyRestraintsSetting < 2 || V.arcologies[0].FSAssetExpansionistResearch === 0) {
diff --git a/src/gui/options/options.js b/src/gui/options/options.js
index a6c6d6ffa9d0f025c7f5afe5fbf8a278d314e35f..800798916d0753cbafba9a09c84a1d517477152f 100644
--- a/src/gui/options/options.js
+++ b/src/gui/options/options.js
@@ -1070,10 +1070,18 @@ App.Intro.contentAndFlavor = function(isIntro) {
 
 	options = new App.UI.OptionsGroup();
 
-	options.addOption("Slave assets affected by weight is", "weightAffectsAssets")
+	options.addOption("Assets affected by weight is", "weightAffectsAssets")
 		.addValue("Enabled", 1).on().addValue("Disabled", 0).off()
 		.addComment("Diet will still affect asset size.");
 
+	options.addOption("Breasts shrink if their base size is greater than", "weightAffectsAssets")
+		.addValueList([
+			["genetic breast size", 0],
+			["an arbitrary value", 1],
+			["what the game can handle", 2]
+			.addComment("Arbitrary value (30kcc) was used prior to genetic breast size.");
+		]);
+
 	options.addOption("Chem damage from drugs is", "curativeSideEffects") // Yes, this variable controls all chem damage. The vestigial "curatives" name isn't worth changing.
 		.addValue("Enabled", 1).on().addValue("Disabled", 0).off()
 		.addComment("If enabled, many drugs will cause harmful, though curable, carcinogen buildup and genomic damage over time.");