diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index ed2188334dcfaeeb4b01ef9dd98e3933c2b26d4f..27d8a909666a143da715c6827defdadad5925079 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -2432,6 +2432,7 @@ may accept strings, use at own risk
 "a niqab and abaya"
 "a one-piece swimsuit"
 "a penitent nuns habit"
+"a police uniform"
 "a red army uniform"
 "a scalemail bikini"
 "a schoolgirl outfit"
@@ -2452,16 +2453,16 @@ may accept strings, use at own risk
 "a sweater"
 "a sweater and cutoffs"
 "a sweater and panties"
+"a t-shirt"
+"a t-shirt and jeans"
+"a t-shirt and panties"
+"a t-shirt and thong"
 "a tank-top"
 "a tank-top and panties"
 "a thong"
 "a toga"
 "a tube top"
 "a tube top and thong"
-"a t-shirt"
-"a t-shirt and jeans"
-"a t-shirt and panties"
-"a t-shirt and thong"
 "an apron"
 "an oversized t-shirt"
 "an oversized t-shirt and boyshorts"
@@ -2472,6 +2473,7 @@ may accept strings, use at own risk
 "body oil"
 "boyshorts"
 "chains"
+"choosing her own clothes"
 "clubslut netting"
 "conservative clothing"
 "cutoffs"
diff --git a/src/art/artJS.tw b/src/art/artJS.tw
index d85213bbd589c587618d05e86b16ea4e2cc0efed..1eec13df17c07cc000d90e2b8e08ab8d45e60ada 100644
--- a/src/art/artJS.tw
+++ b/src/art/artJS.tw
@@ -1766,8 +1766,10 @@ window.ArtVectorArm = function(slave) {
 	if (slave.amp === 1) {
 		T.leftArmType = "None";
 		T.rightArmType = "None";
+		/* these files exist, but draw nothing. Commenting out for now to reduce on rendering time
 		r += jsInclude("Art_Vector_Arm_Right_None");
 		r += jsInclude("Art_Vector_Arm_Left_None");
+		*/
 	} else { /* is not amputee or has limbs equipped so running arm calculation block */
 		if (slave.devotion > 50) {
 			T.leftArmType = "High";
@@ -1826,7 +1828,6 @@ window.ArtVectorArm = function(slave) {
 			}
 		}
 	}
-
 	/* shiny clothing */
 	if (State.variables.seeVectorArtHighlights === 1) {
 		if (slave.fuckdoll !== 0 || slave.clothes === "restrictive latex" || slave.clothes === "a latex catsuit" || slave.clothes === "body oil") {
@@ -1839,74 +1840,77 @@ window.ArtVectorArm = function(slave) {
 				r += jsInclude("Art_Vector_Arm_Outfit_Shine_Left_Low");
 		}
 	}
-
-	/* TODO: simplify selection (select prefix, infix and suffix and combine instead of using switch statements) */
-	switch (slave.clothes) {
-		case "a biyelgee costume":
-		case "a burkini":
-		case "a button-up shirt":
-		case "a button-up shirt and panties":
-		case "a cheerleader outfit":
-		case "a dirndl":
-		case "a gothic lolita dress":
-		case "a hanbok":
-		case "a hijab and abaya":
-		case "a hijab and blouse":
-		case "a huipil":
-		case "a kimono":
-		case "a klan robe":
-		case "a long qipao":
-		case "a military uniform":
-		case "a mounty outfit":
-		case "a nice maid outfit":
-		case "a nice nurse outfit":
-		case "a police uniform":
-		case "a red army uniform":
-		case "a schoolgirl outfit":
-		case "a schutzstaffel uniform":
-		case "a slutty klan robe":
-		case "a slutty nurse outfit":
-		case "a slutty qipao":
-		case "a sweater":
-		case "a sweater and cutoffs":
-		case "a sweater and panties":
-		case "a t-shirt":
-		case "a t-shirt and jeans":
-		case "a t-shirt and panties":
-		case "a t-shirt and thong":
-		case "an oversized t-shirt":
-		case "an oversized t-shirt and boyshorts":
-		case "battlearmor":
-		case "battledress":
-		case "clubslut netting":
-		case "conservative clothing":
-		case "cutoffs and a t-shirt":
-		case "lederhosen":
-		case "nice business attire":
-		case "slutty business attire":
-		case "slutty jewelry":
-		case "sport shorts and a t-shirt":
-		case "Western clothing":
-			r += jsInclude(`Art_Vector_Arm_Outfit_${clothing2artSuffix(slave.clothes)}_Right_${T.rightArmType}`);
-			r += jsInclude(`Art_Vector_Arm_Outfit_${clothing2artSuffix(slave.clothes)}_Left_${T.leftArmType}`);
-			break;
-		case "a slutty schutzstaffel uniform":
-			r += jsInclude(`Art_Vector_Arm_Outfit_SchutzstaffelUniform_Right_${T.rightArmType}`);
-			r += jsInclude(`Art_Vector_Arm_Outfit_SchutzstaffelUniform_Left_${T.leftArmType}`);
-			break;
-		case "a niqab and abaya":
-		case "a burqa":
-			r += jsInclude(`Art_Vector_Arm_Outfit_HijabAndAbaya_Right_${T.rightArmType}`);
-			r += jsInclude(`Art_Vector_Arm_Outfit_HijabAndAbaya_Left_${T.leftArmType}`);
-			break;
-		case "a slave gown":
-			/* only some arm positions have art (feel free to add more) */
-			if (T.leftArmType === "High")
-				r += jsInclude("Art_Vector_Arm_Outfit_SlaveGown_Left_High");
-			else if (T.leftArmType === "Mid")
-				r += jsInclude("Art_Vector_Arm_Outfit_SlaveGown_Left_Mid");
-			else if (T.leftArmType === "Low")
-				r += jsInclude("Art_Vector_Arm_Outfit_SlaveGown_Left_Low");
+	/* Amputee clothing art files exist, but draw nothing. Exclude them for now to reduce on rendering time */
+	if (T.leftArmType !== "None" || T.rightArmType !== "None") {
+		/* TODO: simplify selection (select prefix, infix and suffix and combine instead of using switch statements) */
+		switch (slave.clothes) {
+			case "a biyelgee costume":
+			case "a burkini":
+			case "a button-up shirt":
+			case "a button-up shirt and panties":
+			case "a cheerleader outfit":
+			case "a dirndl":
+			case "a gothic lolita dress":
+			case "a hanbok":
+			case "a hijab and abaya":
+			case "a hijab and blouse":
+			case "a huipil":
+			case "a kimono":
+			case "a klan robe":
+			case "a long qipao":
+			case "a military uniform":
+			case "a mounty outfit":
+			case "a nice maid outfit":
+			case "a nice nurse outfit":
+			case "a police uniform":
+			case "a red army uniform":
+			case "a schoolgirl outfit":
+			case "a schutzstaffel uniform":
+			case "a slutty klan robe":
+			case "a slutty nurse outfit":
+			case "a slutty qipao":
+			case "a sweater":
+			case "a sweater and cutoffs":
+			case "a sweater and panties":
+			case "a t-shirt":
+			case "a t-shirt and jeans":
+			case "a t-shirt and panties":
+			case "a t-shirt and thong":
+			case "an oversized t-shirt":
+			case "an oversized t-shirt and boyshorts":
+			case "battlearmor":
+			case "battledress":
+			case "clubslut netting":
+			case "conservative clothing":
+			case "cutoffs and a t-shirt":
+			case "lederhosen":
+			case "nice business attire":
+			case "slutty business attire":
+			case "slutty jewelry":
+			case "sport shorts and a t-shirt":
+			case "Western clothing":
+				r += jsInclude(`Art_Vector_Arm_Outfit_${clothing2artSuffix(slave.clothes)}_Right_${T.rightArmType}`);
+				r += jsInclude(`Art_Vector_Arm_Outfit_${clothing2artSuffix(slave.clothes)}_Left_${T.leftArmType}`);
+				break;
+			/* manually handle special cases */
+			case "a slutty schutzstaffel uniform":
+				r += jsInclude(`Art_Vector_Arm_Outfit_SchutzstaffelUniform_Right_${T.rightArmType}`);
+				r += jsInclude(`Art_Vector_Arm_Outfit_SchutzstaffelUniform_Left_${T.leftArmType}`);
+				break;
+			case "a niqab and abaya":
+			case "a burqa":
+				r += jsInclude(`Art_Vector_Arm_Outfit_HijabAndAbaya_Right_${T.rightArmType}`);
+				r += jsInclude(`Art_Vector_Arm_Outfit_HijabAndAbaya_Left_${T.leftArmType}`);
+				break;
+			case "a slave gown":
+				/* only some arm positions have art (feel free to add more) */
+				if (T.leftArmType === "High")
+					r += jsInclude("Art_Vector_Arm_Outfit_SlaveGown_Left_High");
+				else if (T.leftArmType === "Mid")
+					r += jsInclude("Art_Vector_Arm_Outfit_SlaveGown_Left_Mid");
+				else if (T.leftArmType === "Low")
+					r += jsInclude("Art_Vector_Arm_Outfit_SlaveGown_Left_Low");
+		}
 	}
 	return r;
 };
@@ -2016,13 +2020,16 @@ window.ArtVectorBelly = function(slave) {
 			case "striped underwear":
 			case "uncomfortable straps":
 				break; /* do nothing for these choices */
+			/* manually handle special cases */
+			case "a slutty schutzstaffel uniform":
+				r += jsInclude("Art_Vector_Belly_Outfit_SchutzstaffelUniform");
+				break;
+			case "a niqab and abaya":
+			case "a burqa":
+				r += jsInclude("Art_Vector_Belly_Outfit_HijabAndAbaya");
+				break;
 			default:
-				let clothes = slave.clothes;
-				if (clothes === "a slutty schutzstaffel uniform") /* slutty schutzstaffel uniform uses schutzstaffel uniform art */
-					clothes = "a schutzstaffel uniform";
-				else if (clothes === "a niqab and abaya" || clothes === "a burqa")
-					clothes = "a hijab and abaya";
-				r += jsInclude(`Art_Vector_Belly_Outfit_${clothing2artSuffix(clothes)}`);
+				r += jsInclude(`Art_Vector_Belly_Outfit_${clothing2artSuffix(slave.clothes)}`);
 		}
 		/* shiny clothing */
 		if (State.variables.seeVectorArtHighlights === 1) {
@@ -2162,8 +2169,6 @@ window.ArtVectorBoobAddons = function(slave) {
 		/* boobs too small: do not show boob-related art */
 		/* BEWARE: this threshold should be kept in sync with the one in Art_Vector_Boob_ */
 	} else {
-		let clothes = slave.clothes;
-
 		switch (slave.clothes) {
 			case "a chattel habit":
 			case "a comfortable bodysuit":
@@ -2188,12 +2193,16 @@ window.ArtVectorBoobAddons = function(slave) {
 			case "sport shorts":
 			case "striped panties":
 				break; /* do nothing for these choices */
+			/* manually handle special cases */
+			case "a slutty schutzstaffel uniform":
+				r += jsInclude("Art_Vector_Boob_Outfit_SchutzstaffelUniform");
+				break;
+			case "a niqab and abaya":
+			case "a burqa":
+				r += jsInclude("Art_Vector_Boob_Outfit_HijabAndAbaya");
+				break;
 			default:
-				if (slave.clothes === "a slutty schutzstaffel uniform") /* slutty schutzstaffel uniform uses schutzstaffel uniform art */
-					clothes = "a schutzstaffel uniform";
-				else if (slave.clothes === "a niqab and abaya" || slave.clothes === "a burqa")
-					clothes = "a hijab and abaya";
-				r += jsInclude(`Art_Vector_Boob_Outfit_${clothing2artSuffix(clothes)}`);
+				r += jsInclude(`Art_Vector_Boob_Outfit_${clothing2artSuffix(slave.clothes)}`);
 		}
 	}
 	if (State.variables.showBodyMods === 1 && (slave.nipplesPiercing > 0 || slave.areolaePiercing > 0)) {
@@ -2642,7 +2651,7 @@ window.ArtVectorFeet = function(slave) {
 		default:
 			outfit = clothing2artSuffix(slave.clothes);
 	}
-	if (outfit) {
+	if (outfit !== undefined) {
 		if (slave.amp !== 1) {
 			if (slave.clothes !== "a slutty qipao" && slave.clothes !== "harem gauze" && slave.clothes !== "slutty jewelry" && slave.clothes !== "Western clothing") /* these clothes have a stump/leg outfit, but no butt outfit */
 				r += jsInclude(`Art_Vector_Butt_Outfit_${outfit}_${T.buttSize}`);