Order of argument application in lambda calculus
It seems that your book uses the notation
$$
\lambda x_1 \ldots \lambda x_n (M_1 \ldots M_k)
$$
instead of the more commonly found (in my experience)
$$
(\lambda x_1 \ldots \lambda x_n. M_1 \ldots M_k)
$$
Both notations are used for logical quantifiers by different authors, so it's not completely surprising. E.g., compare
$$
\exists x (P(x) \land Q(x))
\qquad {\rm vs} \qquad
(\exists x. P(x) \land Q(x))
$$

In the second style, the scope of binders ($\lambda x$, $\exists x$) extends as far to the right as possible.



About application order: the notation of your book
$$
\lambda x_1 \lambda x_2 \lambda x_3 (M) N_1 N_2 N_3
$$
stands for
$$
(((\lambda x_1 (\lambda x_2 (\lambda x_3 (M)))) N_1) N_2) N_3
$$
It is correct that the outermost application is of $N_3$ but this does not get bound to $x_1$. To see where $M_3$ goes, one first needs to reduce the function
$$
((\lambda x_1 (\lambda x_2 (\lambda x_3 (M)))) N_1) N_2
$$
to a lambda, and this involves applying $N_2$ first. That will require applying $M_1$ first, in turn.

The net effect is that $N_i$ gets bound to $x_i$.

Since you mentioned the Haskell notation, it is basically the same thing, even if Haskell uses the other notation (binders extend to the right as possible).