Here is a solution we save the partial toc in \vbox and use \vsplit
\global\setbox\mtpbox=\vbox{\printcontents{l}{0}{\setcounter{tocdepth}{1}}}
complete code
\documentclass[11pt,fleqn]{book}
\input{structure}
\newbox\mtpbox
\makeatletter
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >-2\relax%
\refstepcounter{part}%
\addcontentsline{toc}{part}{\texorpdfstring{\protect\@mypartnumtocformat{\thepart}{#1}}{\partname~\thepart\ ---\ #1}}
\else%
\addcontentsline{toc}{part}{\texorpdfstring{\protect\@myparttocformat{#1}}{#1}}%
\fi%
\startcontents%
\markboth{}{}%
{\thispagestyle{empty}%
\global\setbox\mtpbox=\vbox{\printcontents{l}{0}{\setcounter{tocdepth}{1}}}
\begin{tikzpicture}[remember picture,overlay]%
\node at (current page.north west){\begin{tikzpicture}[remember picture,overlay]%
\fill[ocre!20](0cm,0cm) rectangle (\paperwidth,-\paperheight);
\node[anchor=north] at (4cm,-3.25cm){\color{ocre!40}\fontsize{220}{100}\sffamily\bfseries\@Roman\c@part};
\node[anchor=south east] at (\paperwidth-1cm,-\paperheight+1cm){\parbox[t][][t]{8.5cm}{
\ifdim\ht\mtpbox<\textheight\box\mtpbox\else\vsplit\mtpbox to 15\baselineskip\fi%
}};
\node[anchor=north east] at (\paperwidth-1.5cm,-3.25cm){\parbox[t][][t]{15cm}{\strut\raggedleft\color{white}\fontsize{30}{30}\sffamily\bfseries#2}};
\end{tikzpicture}};
\end{tikzpicture}}%
\@endpart}
\def\@endpart{\vfil\newpage
\ifvoid\mtpbox\else\unvbox\mtpbox\vfil\newpage\fi
\ifodd\value{page}\else
\if@twoside
\if@openright
\null
\thispagestyle{empty}%
\newpage
\fi
\fi
\if@tempswa
\twocolumn
\fi\fi}
\makeatother
\begin{document}
\part{Part One}
\foreach \x in {1,...,30} {
\chapter{A chapter with number \x}
\section{A section}
\subsection{A subsection}
}
\part{Part One}
\foreach \x in {1,...,36} {
\chapter{A chapter with number \x}
\section{A section}
\subsection{A subsection}
}
\end{document}
Update: changes commented in code
\makeatletter
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >-2\relax%
\refstepcounter{part}%
\addcontentsline{toc}{part}{\texorpdfstring{\protect\@mypartnumtocformat{\thepart}{#1}}{\partname~\thepart\ ---\ #1}}
\else%
\addcontentsline{toc}{part}{\texorpdfstring{\protect\@myparttocformat{#1}}{#1}}%
\fi%
\startcontents%
\markboth{}{}%
{\pagestyle{empty}%
\global\setbox\mtpbox=\vbox{\printcontents{l}{0}{\setcounter{tocdepth}{1}}}
\loop % use a boocle: loop
\begin{tikzpicture}[remember picture,overlay]%
\node at (current page.north west){\begin{tikzpicture}[remember picture,overlay]%
\fill[ocre!20](0cm,0cm) rectangle (\paperwidth,-\paperheight);
\node[anchor=north] at (4cm,-3.25cm){\color{ocre!40}\fontsize{220}{100}\sffamily\bfseries\@Roman\c@part};
\node[anchor=south east] at (\paperwidth-1cm,-\paperheight+1cm){\parbox[t][][t]{8.5cm}{
\ifdim\ht\mtpbox<16\baselineskip\box\mtpbox\else\vsplit\mtpbox to 15\baselineskip\fi%
% rather then \textheight we use 16\baselineskip for example
}};
\node[anchor=north east] at (\paperwidth-1.5cm,-3.25cm){\parbox[t][][t]{15cm}{\strut\raggedleft\color{white}\fontsize{30}{30}\sffamily\bfseries#2}};
\end{tikzpicture}};
\end{tikzpicture}%
\vfil\newpage % go to next page
\unless\ifvoid\mtpbox\repeat} % end of boocle
\@endpart}
\def\@endpart{\vfil\newpage
%\ifvoid\mtpbox\else\unvbox\mtpbox\vfil\newpage\fi % not used any more
\ifodd\value{page}\else
\if@twoside
\if@openright
\null
\thispagestyle{empty}%
\newpage
\fi
\fi
\if@tempswa
\twocolumn
\fi\fi}
\makeatother
\documentclass{...}and ending with\end{document}. A screen shot is nice, but does not show what you've done – Dec 24 '15 at 12:44\addtocontents{toc}{\clearpage}will be inserted. – Dec 24 '15 at 12:49titletoccould work? something like the top answer by Gonzala Medina in http://tex.stackexchange.com/questions/48900/two-independent-tocsWould require manual breaking of sections, but this should be done when the article should be published.
– Runar Dec 24 '15 at 12:56