diff --git a/docs.tex b/docs.tex
index 31d88060a43873cee02c06e57df6fc2f12ddf27c..f2383135f5dace646537469955e5c42d005333b8 100644
--- a/docs.tex
+++ b/docs.tex
@@ -165,6 +165,30 @@ After inputting that, you can get the spell, and the `printindex' command will c
   {Ground shakes}% Short Description
   {Brrrrrr}% Long Description
 
+In non-verbose mode, the same spell presents differently, and belong in the \verb"description" environment.
+
+\settoggle{verbose}{false}
+
+\begin{description}
+
+\spell{Quake}% Name
+  {Earth}% Spheres
+  {Wane}% Action
+  {\distant, \duplicated}% Enhancements
+  {Caving}% Skill
+  {Ground shakes}% Short Description
+  {Brrrrrr}% Long Description
+
+\end{description}
+
+Alternatively, pull in a bunch of spells from a sphere at a particular level with:
+
+\verb"\shortSpells{air2}"
+
+\ldots which shows Air spells of level 2.
+
+\settoggle{verbose}{true}
+
 \subsubsection{Magical Items}
 
 This is a magical item.
diff --git a/magic.sty b/magic.sty
index f9edea2705f8fc41546256edee06431b5e4b1289..048d5110eae4f2a57de7f131bc3bcb003723270d 100644
--- a/magic.sty
+++ b/magic.sty
@@ -29,27 +29,40 @@
   \foreach \s in {#4}{%
     \stepcounter{spelllevel}%
   }%
-  \setcounter{age}{\value{spelllevel}}%
-  \addtocounter{age}{6}%
-  \subsubsection[\textbf{#1}: #6. (Cost:~\arabic{spelllevel}, Spheres:~#2, \tn{\arabic{age}}, Skill:~#5, Range: \spellRange)]{#1}%
-  \label{#1}%
-
-  {\sffamily(#4
-  #3
-  #2)}
-  Cost:~\arabic{spelllevel},
-  \setRange%
-  Range:~\spellRange,
-  \setArea%
-  \iftoggle{duplicated}{%
-    Targets:~\spellArea, %
-  }{}%
-  \tn{\arabic{age}},
-  Skill:~\underline{#5}
-  \vspace{.5em}\afterparnoindent
-  \index[spells]{\textbf{#1}: #6. (Cost:~\arabic{spelllevel}, Spheres:~#2, Range: \spellRange\iftoggle{duplicated}{, Targets: \spellArea}{}, \tn{\arabic{age}}, Skill:~#5)}
-
-  #7
+  \iftoggle{verbose}{
+    \setcounter{age}{\value{spelllevel}}%
+    \addtocounter{age}{6}%
+    \subsubsection{#1}%
+    \label{#1}%
+
+    {\sffamily(#4
+    #3
+    #2)}
+    Cost:~\arabic{spelllevel},
+    \setRange%
+    Range:~\spellRange,
+    \setArea%
+    \iftoggle{duplicated}{%
+      Targets:~\spellArea, %
+    }{}%
+    \tn{\arabic{age}},
+    Skill:~\underline{#5}
+    \vspace{.5em}\afterparnoindent
+    \index[spells]{\textbf{#1}: #6. (Cost:~\arabic{spelllevel}, Spheres:~#2, Range: \spellRange\iftoggle{duplicated}{, Targets: \spellArea}{}, \tn{\arabic{age}}, Skill:~#5)}
+
+    #7
+  }{
+    \item[\textbf{#1}]
+    \hphantom{#4}%
+    \setArea%
+    \setRange%
+    \setcounter{age}{8}% to track TN
+    \addtocounter{age}{\value{#5}}%
+    (Cost:~\arabic{spelllevel}, Spheres:~#2, Range: \spellRange\iftoggle{duplicated}{, Targets: \spellArea}{}, \tn{\arabic{age}})
+
+    \item
+    \MakeUppercase#6.
+  }
 }
 
 \newcommand\spellRange{}
@@ -144,4 +157,19 @@
   \vspace{.3em}
 }
 
+\newcommand\shortSpells[1]{
+  \begin{description}
+    \settoggle{verbose}{false}
+    \foreach \s in {#1}{
+      \input{config/spells/\s.tex}
+    }
+  \end{description}
+}
+
+\newcommand\longSpells[1]{
+    \settoggle{verbose}{true}
+    \foreach \s in {#1}{
+      \input{config/spells/\s.tex}
+    }
+}