About $\varepsilon_0^2 = \varepsilon_1$ I'm fairly new to the idea of the epsilons.
$\varepsilon_1=\varepsilon_0^{\varepsilon_0+1}$ by definition, right? Considering that $\varepsilon_{0}=\omega^{\omega^{\omega^{...^{\omega}}}}$. Using ordinal arithmetic, however, we can deduce that $\varepsilon_{1}=\varepsilon_{0}^{\varepsilon_{0}+1}=\varepsilon_{0}^{\varepsilon_{0}}*\varepsilon_{0}=\varepsilon_{0}*\varepsilon_{0}=(\varepsilon_{0})^2$.
$\varepsilon_{2}=\varepsilon_{0}^{\varepsilon_{1}+1}=\varepsilon_{1}*\varepsilon_{0}=(\varepsilon_{0})^2*\varepsilon_{0}=(\varepsilon_{0})^3$.
I suppose we could continue that pattern until $\varepsilon_{\omega}$.
 A: $\DeclareMathOperator\epsilon{\varepsilon}$ There are multiple mistakes here:


*

*There is no "top $\omega$" in $\epsilon_0$: written suggestively it's "$\omega^{\omega^{\omega^{...}}},$" not "$\omega^{\omega^{\omega^{...^{\omega}}}}$." More precisely, we have $$\epsilon_0=\sup\{\omega,\omega^\omega, \omega^{\omega^\omega},...\}=\sup\{\omega\uparrow\uparrow n: n\in\omega\}.$$ In fact, that "top $\omega$" notation doesn't really make sense (the notation "$(\omega^{\omega^{\omega^{...}}})^\omega$" does make sense but is much smaller than $\epsilon_1$ - see below).

*$\epsilon_1$ is not defined as $\epsilon_0^{\epsilon_0+1}$; rather, it's defined as the smallest ordinal $\theta$ which is greater than $\epsilon_0$ and satisfies $\omega^\theta=\theta$.

*$\epsilon_0^{\epsilon_0}$ is not the same as $\epsilon_0$. Indeed, for any ordinals $\alpha,\beta>1$ we have $\alpha^\beta>\alpha$. (Note that it is not the case that $\beta^\alpha>\alpha$ in general.)

So what is $\epsilon_1$? I suspect what's throwing you off is the calculation $$\epsilon_1=\sup\{\omega^{\epsilon_0+1}, \omega^{\omega^{\epsilon_0+1}}, \omega^{\omega^{\omega^{\epsilon_0+1}}},...\}$$ which at first glance looks a lot like $\epsilon_0^{\epsilon_0+1}$. 
But in fact there's a crucial difference which we see if we write out some parentheses (and this parallels the first bulletpoint above). On the one hand we have $$\epsilon_1=\sup\{\omega^{\epsilon_0+1}, \omega^{(\omega^{\epsilon_0+1})}, \omega^{(\omega^{(\omega^{\epsilon_0+1})})},...\},$$ while on the other hand we have $$\epsilon_0^{\epsilon_0+1}=\sup\{\omega^{\epsilon_0+1}, (\omega^\omega)^{\epsilon_0+1},(\omega^{(\omega^\omega}))^{\epsilon_0+1},...\}.$$ The difference between putting $\epsilon_0+1$ inside versus outside the tower of exponents is huge, and we see it quite early on: $\omega^{(\omega^{\epsilon_0+1})}$ is vastly bigger than $(\omega^\omega)^{\epsilon_0+1}$

In general, see the discussion at the wikipedia page. The ordinal $\epsilon_1$ is in fact much bigger than $\epsilon_0^{\epsilon_0+1}$. In fact, for any $\alpha,\beta<\epsilon_1$ we have $\alpha^\beta<\epsilon_1$ and this holds in general: $\epsilon$ numbers are exactly those which are "inaccessible via ordinal exponentiation." (This is a good exercise.)
