Sachverhalt: A. Die B._ AG ist Eigentümerin der Parzellen Nrn. 761 und 1417 in Luzern (rechtes Ufer), die mit einem von der C._ AG betriebenen Spital überbaut sind. Entlang der nördlichen Grundstücksgrenzen verläuft die St.-Anna-Strasse, im Süden schliesst die Rigistrasse an die beiden Grundstücke. Mit zwei separaten Eingaben vom 29. Juli 2013 ersuchte die C._ AG zum einen um die Bewilligung für den Abbruch der bestehenden Trakte A und B sowie deren Ersatz durch einen Trakt A+, zum andern um die Bewilligung für den Neubau eines Trakts E Hof. Gegen das Bauvorhaben Trakt E Hof gingen zahlreiche Einsprachen ein. Mit Entscheid vom 29. Oktober 2014 erteilte der Stadtrat Luzern die Baubewilligung unter Bedingungen und Auflagen. Auf drei der erhobenen Einsprachen trat er nicht ein, darunter auf jene von A._. Gegen den Entscheid des Stadtrats erhoben A._ sowie weitere Personen Verwaltungsgerichtsbeschwerde. Mit Urteil vom 16. März 2016 wies das Kantonsgericht Luzern die Beschwerden ab, soweit es darauf eintrat. In Bezug auf die Beschwerde von A._ erwog es, der Stadtrat sei zu Recht nicht auf seine Einsprache eingetreten. Er könne nicht als besonders berührt gelten und sei deshalb auch nicht einspracheberechtigt. Auch die Rügen jener Beschwerdeführer, auf deren Einsprache der Stadtrat eingetreten war, erachtete es als unbegründet. B. Mit Beschwerde in öffentlich-rechtlichen Angelegenheiten vom 3. Mai 2016 beantragt A._, das Urteil des Kantonsgerichts sei aufzuheben, eventuell sei die Sache an die Vorinstanz zurückzuweisen. Das Kantonsgericht schliesst auf die Abweisung der Beschwerde. Die Beschwerdegegnerinnen beantragen primär, auf die Beschwerde sei nicht einzutreten, und eventualiter, sie sei abzuweisen, soweit darauf eingetreten werden könne. Der Stadtrat erklärt in einer verspätet eingereichten Eingabe, auf eine Vernehmlassung zu verzichten. Der Beschwerdeführer hat sich erneut vernehmen lassen. C. Mit Präsidialverfügung vom 7. Juni 2016 hat das Bundesgericht das Gesuch des Beschwerdeführers um aufschiebende Wirkung abgewiesen.