
function MNT2:LoadShaman()
	if select(2, UnitClass("player")) == 'SHAMAN' then
		self:RegisterEvent("LEARNED_SPELL_IN_TAB")
		self:RegisterEvent("CHARACTER_POINTS_CHANGED")
		self:RegisterEvent("PLAYER_TALENT_UPDATE")

		self.LEARNED_SPELL_IN_TAB = function(self)
			if GetSpellInfo(GetSpellInfo(2645)) then --40% Ghost Wolf
				self.db.global.macros['Shaman Ground'] = [[
#showtooltip
/cast <s2645>]]
				if not self:MountExists(2645) then
					self.db.char.mounts['ground'][40] = self.db.char.mounts['ground'][40] or {}
					self.db.char.mounts['ground'][40][2645] = 5
				end
				if (not self.MaxGroundSpeed) or self.MaxGroundSpeed < 40 then
					self.MaxGroundSpeed = 40
				end
			end
			self:CHARACTER_POINTS_CHANGED()
		end
		self.CHARACTER_POINTS_CHANGED = function(self)
			local _, _, _, _, _, _, castTime = GetSpellInfo(2645)
			self.db.char.mountSummonMode[2645] = castTime == 0 and 'instant' or 'cast'
			self:LocalizeIDs()
			self:UpdateMountOptions()
			self:UpdateMainOptions()
		end
		self.PLAYER_TALENT_UPDATE = self.CHARACTER_POINTS_CHANGED

		self:LEARNED_SPELL_IN_TAB()
	else
		MNT2.LoadShaman = nil -- not a shaman so we can erase any trace of this file and let the GC deal with it
		self.db.global.macros['Shaman Ground'] = nil
	end
end
