diff --git a/source/Character.hx b/source/Character.hx
index abb2908cb..1771c49d1 100644
--- a/source/Character.hx
+++ b/source/Character.hx
@@ -269,6 +269,20 @@ class Character extends FlxSprite
 				addOffset("singDOWNmiss", -11, -19);
 
 				flipX = true;
+			case 'parents-christmas':
+				frames = FlxAtlasFrames.fromSparrow('assets/images/christmas/mom_dad_christmas_assets.png',
+					'assets/images/christmas/mom_dad_christmas_assets.xml');
+				animation.addByPrefix('idle', 'Parent Christmas Idle', 24, false);
+				animation.addByPrefix('singUP', 'Parent Up Note Dad', 24, false);
+				animation.addByPrefix('singDOWN', 'Parent Down Note Dad', 24, false);
+				animation.addByPrefix('singLEFT', 'Parent Left Note Dad', 24, false);
+				animation.addByPrefix('singRIGHT', 'Parent Right Note Dad', 24, false);
+
+				animation.addByPrefix('singUP-alt', 'Parent Up Note Mom', 24, false);
+
+				animation.addByPrefix('singDOWN-alt', 'Parent Down Note Mom', 24, false);
+				animation.addByPrefix('singLEFT-alt', 'Parent Left Note Mom', 24, false);
+				animation.addByPrefix('singRIGHT-alt', 'Parent Right Note Mom', 24, false);
 		}
 
 		playAnim('singUP');
diff --git a/source/ChartingState.hx b/source/ChartingState.hx
index 95b165105..9f9020041 100644
--- a/source/ChartingState.hx
+++ b/source/ChartingState.hx
@@ -253,6 +253,7 @@ class ChartingState extends MusicBeatState
 	var check_mustHitSection:FlxUICheckBox;
 	var check_changeBPM:FlxUICheckBox;
 	var stepperSectionBPM:FlxUINumericStepper;
+	var check_altAnim:FlxUICheckBox;
 
 	function addSectionUI():Void
 	{
@@ -292,6 +293,9 @@ class ChartingState extends MusicBeatState
 		check_mustHitSection.checked = true;
 		// _song.needsVoices = check_mustHit.checked;
 
+		check_altAnim = new FlxUICheckBox(10, 400, null, null, "Alt Animation", 100);
+		check_altAnim.name = 'check_altAnim';
+
 		check_changeBPM = new FlxUICheckBox(10, 60, null, null, 'Change BPM', 100);
 		check_changeBPM.name = 'check_changeBPM';
 
@@ -299,6 +303,7 @@ class ChartingState extends MusicBeatState
 		tab_group_section.add(stepperSectionBPM);
 		tab_group_section.add(stepperCopy);
 		tab_group_section.add(check_mustHitSection);
+		tab_group_section.add(check_altAnim);
 		tab_group_section.add(check_changeBPM);
 		tab_group_section.add(copyButton);
 		tab_group_section.add(clearSectionButton);
@@ -384,6 +389,8 @@ class ChartingState extends MusicBeatState
 				case 'Change BPM':
 					_song.notes[curSection].changeBPM = check.checked;
 					FlxG.log.add('changed bpm shit');
+				case "Alt Animation":
+					_song.notes[curSection].altAnim = check.checked;
 			}
 		}
 		else if (id == FlxUINumericStepper.CHANGE_EVENT && (sender is FlxUINumericStepper))
@@ -746,6 +753,7 @@ class ChartingState extends MusicBeatState
 
 		stepperLength.value = sec.lengthInSteps;
 		check_mustHitSection.checked = sec.mustHitSection;
+		check_altAnim.checked = sec.altAnim;
 		check_changeBPM.checked = sec.changeBPM;
 		stepperSectionBPM.value = sec.bpm;
 	}
@@ -824,7 +832,8 @@ class ChartingState extends MusicBeatState
 			changeBPM: false,
 			mustHitSection: true,
 			sectionNotes: [],
-			typeOfSection: 0
+			typeOfSection: 0,
+			altAnim: false
 		};
 
 		_song.notes.push(sec);
diff --git a/source/HealthIcon.hx b/source/HealthIcon.hx
index 56b4d8c19..e519e6974 100644
--- a/source/HealthIcon.hx
+++ b/source/HealthIcon.hx
@@ -21,6 +21,8 @@ class HealthIcon extends FlxSprite
 		animation.add('dad', [12, 13], 0, false, isPlayer);
 		animation.add('bf-old', [14, 15], 0, false, isPlayer);
 		animation.add('gf', [16], 0, false, isPlayer);
+		animation.add('parents-christmas', [0, 1], 0, false, isPlayer);
+		animation.add('monster', [0], 0, false, isPlayer);
 		animation.play(char);
 		scrollFactor.set();
 	}
diff --git a/source/Section.hx b/source/Section.hx
index 19770b6ea..c859f6f31 100644
--- a/source/Section.hx
+++ b/source/Section.hx
@@ -8,6 +8,7 @@ typedef SwagSection =
 	var mustHitSection:Bool;
 	var bpm:Int;
 	var changeBPM:Bool;
+	var altAnim:Bool;
 }
 
 class Section