Faits : A. Le 1er septembre 2013, vers 3h00, X._ circulait sur la route des Monts-de-Lavaux à la Croix-sur-Lutry. Il n'a pas obtempéré aux injonctions d'arrêt d'un agent de police dans le cadre d'un contrôle de circulation et a pris la fuite. Un signalement du véhicule a été diffusé sur les ondes. Peu après, une patrouille de police a repéré la voiture du prénommé à la hauteur de la route du Simplon à Paudex. Malgré des ordres clairs d'arrêt des policiers, ce dernier a poursuivi sa route. Peu après, il a failli percuter une deuxième voiture de police qui barrait l'avenue de Lavaux afin de l'arrêter. Une course-poursuite a alors été entamée. Tout au long du trajet urbain, X._ n'a pas respecté de nombreux panneaux "stop" et "cédez-le passage", a franchi plusieurs giratoires à contresens et a circulé à une allure nettement supérieure aux 50 km/h prescrits, la police constatant notamment des pointes à 100 km/h. La même nuit, vers 3h55, la voiture conduite par X._ a été repérée sur l'avenue de Beaulieu à Lausanne. Constatant qu'il était pris en chasse sur le pont de Chauderon, le prénommé a franchi sans s'arrêter le feu rouge et s'est engagé sur l'avenue Jules Gonin. Il a ensuite accéléré jusqu'à une vitesse de 180 km/h et, franchissant encore deux feux rouges et effectuant des dépassements téméraires, forçant d'autres usagers de la route à effectuer des manoeuvres d'évitement d'urgence, il a débouché sans ralentir sur la place Saint-François. X._ a poursuivi sa course sur l'avenue Benjamin Constant où il s'est retrouvé nez à nez avec une voiture de police qui s'était mise en travers de la chaussée de manière à lui bloquer le passage. Une tentative d'évitement et un début de freinage in extremis ne l'ont pas empêché de percuter violemment le véhicule. X._ a alors pris la fuite à pied sans se soucier du sort des occupants du véhicule de police. Il a été rattrapé sur la terrasse du Café du Théâtre et s'est encore débattu, tentant de prendre la fuite. B. Par jugement du 12 février 2015, le Tribunal correctionnel de l'arrondissement de Lausanne a reconnu X._ coupable notamment de mise en danger de la vie d'autrui (129 CP), de conduite d'un véhicule sans permis de conduire et de violation grave qualifiée des règles de la circulation routière (art. 90 al. 3 LCR). Il l'a condamné à une peine privative de liberté de trente-cinq mois, sous déduction de 90 jours de détention avant jugement, avec sursis partiel, la peine à exécuter étant de onze mois, le solde de vingt-quatre mois étant assorti d'un sursis de cinq ans, ainsi qu'à une amende de 1'000 francs. Le tribunal a également ordonné que 8 jours de détention soient déduits de la peine fixée, à titre de réparation du tort moral pour détention dans des conditions illicites. Statuant le 11 juin 2015, la Cour d'appel pénale du Tribunal cantonal vaudois a rejeté l'appel de X._ et confirmé le jugement précité. C. Agissant par la voie du recours en matière pénale au Tribunal fédéral, X._ conclut à son acquittement du chef d'accusation de mise en danger de la vie d'autrui et à une réduction de sa peine à dire de justice. Il demande également à ce que le chiffre III du dispositif du jugement de première instance soit annulé (déduction de 8 jours de détention de la peine prononcée, à titre de tort moral) et que l'Etat de Vaud soit condamné à lui verser une indemnité de 1'600 francs. Subsidiairement, il conclut à l'annulation du jugement du 11 juin 2015 et au renvoi de la cause à l'autorité cantonale pour nouvelle décision dans le sens des considérants. Le recourant requiert également l'assistance judiciaire.