Faits :
A.
Par jugement du 10 juillet 2014, le Tribunal criminel de l'arrondissement de La Broye et du Nord vaudois a reconnu X._ coupable d'infraction à la loi fédérale du 3 octobre 1951 sur les stupéfiants et les substances psychotropes (LStup; RS 812.121), de faux dans les certificats, d'entrée illégale sur le territoire suisse et de séjour illégal en Suisse; il l'a condamné à une peine privative de liberté de 13 ans.
Statuant le 21 novembre 2014 sur l'appel et l'appel joint formés respectivement par le prévenu et le Ministère public contre ce jugement, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud l'a réformé, réduisant la peine privative de liberté à 12 ans.
B.
En bref, les faits retenus par la Cour d'appel sont les suivants.
Dès mars 2006 jusqu'à son arrestation le 4 octobre 2006, X._ a réceptionné à son domicile à C._ de la cocaïne en provenance des Pays-Bas. La drogue était transportée par des "mules"; les quantités transportées variaient entre 1,2 à 2 kg par "mule". Entre juin et septembre 2006, dix à quinze "mules" ont chacune livré une cargaison de cet ordre au prévenu. Ce dernier, après avoir reconditionné ces livraisons en quantités moindres, les remettait à des "grossistes", qui venaient se fournir à son appartement. Au total, l'intéressé a réceptionné et revendu au moins 23 kg de cocaïne, réalisant un bénéfice d'au moins 230'000 francs. De juin 2012 jusqu'à son arrestation, le prévenu a logé chez A._, à qui il a remis en tout 10 g de cocaïne au titre de paiement de son loyer. Enfin, le 16 décembre 2012, il a été interpellé alors qu'il transportait quatre boulettes de cocaïne, d'un poids total de 1,8 g, destinées à la vente dans une discothèque.
Après avoir quitté la Suisse en 2009, où il ne disposait plus d'autorisation administrative de séjour, X._ a brièvement séjourné en France, puis en Espagne, où il a dérobé le permis de séjour de son frère. Son passage en douane à son retour en Suisse a été contrôlé le 3 avril 2010 sous le nom de son frère. A Schaffhouse, entre le mois d'avril 2010 et le 16 décembre 2012, il a séjourné sous le nom de son frère et s'est légitimé à l'aide du permis de séjour espagnol de celui-ci.
C.
X._ recourt au Tribunal fédéral contre le jugement de la Cour d'appel du 21 novembre 2014. Il demande à être acquitté des chefs d'accusation d'infraction à la LStup et de faux dans les certificats ainsi qu'à être sanctionné, s'agissant de l'infraction à la législation sur les étrangers, à une peine modérée de jours-amende. Subsidiairement, il conclut au renvoi de la cause à la cour cantonale pour nouvel arrêt et nouvelle instruction dans le sens des considérants. Il requiert également l'assistance judiciaire.
Considérant en droit :
1.
Le recourant n'a pas indiqué par quelle voie de recours il procède au Tribunal fédéral. Toutefois, cette omission ne saurait lui nuire si son recours remplit les exigences légales de la voie de droit qui lui est ouverte (au sujet d'une voie de recours erronée, cf. ATF 138 I 367 consid. 1.1 p. 370; 134 III 379 consid. 1.2 p. 382). En l'espèce, la voie du recours en matière pénale est ouverte (art. 78 ss LTF).
2.
Dans un grief d'ordre formel qu'il convient d'examiner en premier lieu, le recourant se plaint d'une violation de son droit d'être entendu et de l'art. 398 CPP, la Cour d'appel n'ayant pas procédé à sa propre administration des preuves et ayant refusé d'auditionner A._ en qualité de témoin.
2.1. L'appel doit permettre un nouvel examen au fond par la juridiction d'appel. Celle-ci ne doit pas se borner à rechercher les erreurs du juge précédent et à critiquer le jugement de ce dernier; elle doit tenir ses propres débats et prendre sa décision sous sa responsabilité et selon sa libre conviction, qui doit reposer sur le dossier et sa propre administration des preuves. L'appel tend à la répétition de l'examen des faits et au prononcé d'un nouveau jugement (cf. art. 398 CPP; arrêt 6B_78/2012 du 27 août 2012 consid. 3). L'immédiateté des preuves ne s'impose toutefois pas en instance d'appel.
En effet, selon l'art. 389 al. 1 CPP, la procédure de recours se fonde sur les preuves administrées pendant la procédure préliminaire et la procédure de première instance. L'art. 389 al. 3 CPP règle les preuves complémentaires. Ainsi, la juridiction de recours peut administrer, d'office ou à la demande d'une partie, les preuves complémentaires nécessaires au traitement du recours. Conformément à l'art. 139 al. 2 CPP, il n'y a pas lieu d'administrer des preuves sur des faits non pertinents, notoires, connus de l'autorité ou déjà suffisamment prouvés. Cette disposition codifie, pour la procédure pénale, la règle jurisprudentielle déduite de l'art. 29 al. 2 Cst. en matière d'appréciation anticipée des preuves (arrêt 6B_977/2014 du 17 août 2015 consid. 1.2 et les références citées). Le magistrat peut renoncer à l'administration de certaines preuves, notamment lorsque les faits dont les parties veulent rapporter l'authenticité ne sont pas importants pour la solution du litige. Ce refus d'instruire ne viole ainsi le droit d'être entendu des parties que si l'appréciation anticipée de la pertinence du moyen de preuve offert, à laquelle le juge a procédé, est entachée d'arbitraire (ATF 136 I 229 consid. 5.3 p. 236 s.; 131 I 153 consid. 3 p. 157 et les arrêts cités).
2.2. En l'espèce, la Cour d'appel a rejeté les réquisitions de preuve du recourant au motif qu'elles ne répondaient pas aux conditions de l'art. 389 CPP et n'apparaissaient au surplus pas pertinentes.
Le recourant ne discute pas la pertinence de la motivation cantonale. Il se borne à affirmer que l'audition requise était importante pour mieux comprendre le milieu dans lequel il évoluait lorsqu'il se trouvait à Schaffhouse, six ans après sa première arrestation; cela aurait permis de démontrer l'absence de trafic en 2006. Ce faisant, l'intéressé n'expose pas en quoi la cour cantonale aurait écarté arbitrairement cette offre de preuve, ce qui n'apparaît manifestement pas être le cas. Son grief de violation du droit d'être entendu doit par conséquent être rejeté dans la mesure de sa recevabilité.
C'est par ailleurs en vain que le recourant reproche à la Cour d'appel de n'avoir pas utilisé son pouvoir d'examen. La cour cantonale a en effet tenu ses propres débats (art. 405 CPP) et entendu le prévenu. Même si elle s'est souvent référée au jugement attaqué, estimant les motifs retenus par le Tribunal criminel convaincants, elle a procédé à sa propre appréciation de la cause et s'est fondée sur des éléments suffisants et probants pour conclure que le recourant s'était rendu coupable des infractions reprochées (cf. consid. 3 et 5 ci-après).
3.
Le recourant estime que la Cour d'appel a méconnu le principe de la présomption d'innocence. Il conteste s'être rendu coupable d'un trafic de cocaïne portant sur 23 kg et allègue avoir présenté, devant les autorités précédentes, un faisceau d'indices suffisant pour mettre en doute l'existence de ce trafic.
3.1. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de fait de la décision entreprise (art. 105 al. 1 LTF), à moins qu'elles n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, soit pour l'essentiel de façon arbitraire au sens de l'art. 9 Cst. Il n'entre ainsi pas en matière sur les critiques de nature appellatoire (ATF 140 III 264 consid. 2.3 p. 266). En bref, une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable, et cela non seulement dans sa motivation mais aussi dans son résultat.
Lorsque l'autorité cantonale a forgé sa conviction quant aux faits sur la base d'un ensemble d'éléments ou d'indices convergents, il ne suffit pas que l'un ou l'autre de ceux-ci ou même chacun d'eux pris isolément soit à lui seul insuffisant. L'appréciation des preuves doit en effet être examinée dans son ensemble. Il n'y a ainsi pas d'arbitraire si l'état de fait retenu pouvait être déduit de manière soutenable du rapprochement de divers éléments ou indices. De même, il n'y a pas d'arbitraire du seul fait qu'un ou plusieurs arguments corroboratifs sont fragiles, si la solution retenue peut être justifiée de façon soutenable par un ou plusieurs arguments de nature à emporter la conviction (arrêt 6B_563/2014 du 10 juillet 2015 consid. 1.1 et l'arrêt cité).
La présomption d'innocence, garantie par l'art. 32 al. 1 Cst., ainsi que son corollaire le principe "in dubio pro reo" concernent tant le fardeau de la preuve que l'appréciation des preuves. Lorsque, comme en l'espèce, l'appréciation des preuves et la constatation des faits sont critiquées en référence au principe "in dubio pro reo", celui-ci n'a pas de portée plus large que l'interdiction de l'arbitraire (ATF 138 V 74 consid. 7 p. 82).
3.2. En l'espèce, pour juger de la culpabilité du recourant, la Cour d'appel s'est ralliée aux motifs retenus par le Tribunal criminel, qu'elle a estimé convaincants. Elle a souligné plusieurs points, notamment que les explications fournies par B._, très précises, avaient permis de mettre à jour un important trafic de cocaïne, dans le cadre duquel le recourant avait joué un rôle de "grossiste". En se fondant sur des contrôles téléphoniques rétroactifs, la police avait procédé à un travail de recoupement minutieux, lequel avait permis de confirmer les déclarations de B._. Il avait été en outre retrouvé au domicile du couple une bouteille d'ammoniaque, une balance de précision dissimulée dans une chaussette, des parachutes de cocaïne et diverses sommes d'argent en liquide cachées dans des chaussettes, pour un montant total de 16'500 francs. De plus, lors d'interpellations en septembre et octobre 2006, des montants de 4'500 fr., respectivement 5'000 fr., avaient été retrouvés sur le prévenu. Celui-ci avait par ailleurs une formation de chimiste et les personnes en compagnie desquelles il était lors des arrestations d'octobre 2006 et décembre 2012 apparaissaient toutes liées au trafic de cocaïne.
La cour cantonale a également répondu spécifiquement aux éléments mis en avant par le recourant, lequel mettait notamment en doute la crédibilité du témoignage de B._; pour les juges cantonaux, les allégations du prévenu étaient en contradiction manifeste avec la précision des détails fournis et les recoupements effectués par la suite. Celui-ci ne pouvait non plus rien déduire du fait que la quantité de drogue retrouvée à son domicile était sans commune mesure avec l'importance du trafic qui lui était reproché, qu'il était demeuré en Suisse après sa libération ou qu'il menait un train de vie modeste.
Dans son recours, l'intéressé, plaidant à nouveau sa cause, se contente de discuter l'argumentation de la cour cantonale. Il passe en revue les éléments retenus par cette dernière et présente sa propre version des faits. A aucun moment il n'allègue que les faits auraient été retenu de façon arbitraire ou n'expose en quoi le raisonnement des juges cantonaux serait insoutenable, ce qui n'apparaît au demeurant pas être le cas. Son grief, de nature purement appellatoire, doit par conséquent être rejeté dans la mesure de sa recevabilité. Il n'y a dès lors pas lieu de remettre en cause l'implication et le rôle du recourant dans le trafic de cocaïne en question, en 2006 et en 2012.
4.
Le recourant demande au Tribunal fédéral d'annuler les mesures visant la confiscation des sommes saisies et de divers objets; il n'y aurait pas de preuve suffisante que ces sommes proviendraient d'une activité délictueuse ou que ces objets auraient servi à une telle activité.
Ce moyen repose essentiellement sur la contestation de l'existence du trafic de drogue, grief écarté au considérant précédent. Il ressort par ailleurs du jugement attaqué que le lien entre l'argent séquestré et les divers objets d'une part, et l'activité délictueuse d'autre part, a été suffisamment démontré. En particulier, une partie de l'argent retrouvée au domicile du recourant était cachée dans des chaussettes et se présentait sous la forme de nombreuses petites coupures. Le recourant n'a jamais donné d'explications crédibles sur ce point mais a au contraire multiplié les allégations contradictoires. De plus, B._ avait reconnu que l'argent en question provenait bien du trafic de drogue et ne constituait nullement une aide financière de sa famille.
Les conditions des art. 69 et 70 CP sont par conséquent réalisées et il n'y a pas lieu d'annuler les mesures litigieuses.
5.
Le recourant conteste sa condamnation pour faux dans les certificats au sens de l'art. 252 CP. Il allègue que la pièce d'identité retrouvée sur lui, à savoir celle de son frère, n'était pas un faux. La photo ne lui ressemblait pas et une lecture rapide du document permettait de voir qu'il ne s'agissait pas de lui.
5.1. L'art. 252 al. 3 CP punit de l'emprisonnement ou de l'amende celui qui, dans le dessein d'améliorer sa situation ou celle d'autrui, aura abusé, pour tromper autrui, d'une pièce de légitimation, d'un certificat ou d'une attestation, véritable mais non à lui destiné. Est donc punissable celui qui abuse d'un certificat véritable dont il n'est pas le légitime titulaire; tel est le cas de celui qui utilise le passeport d'un tiers pour passer la frontière (arrêt 6S.425/2004 du 28 janvier 2005 consid. 3.3).
L'auteur doit agir dans le dessein d'améliorer sa situation ou celle d'autrui. Ce dessein est réalisé, notamment lorsque l'auteur veut se faciliter la vie (ATF 111 IV 24 consid. 1b p. 26). Interprété de façon tellement large, il vise pratiquement toutes les situations, à moins que l'auteur n'ait agi sans but raisonnable ou pour nuire à autrui (arrêt 6B_619/2012 du 18 décembre 2012 consid. 1.2.1 et les références).
5.2. En l'espèce, le recourant a utilisé le permis de séjour de son frère pour passer la frontière à son retour en Suisse et pour se légitimer lors de son séjour à Schaffhouse. La cour cantonale a constaté elle-même que le recourant et la photographie de la pièce en cause présentaient une certaine ressemblance; il en est de même pour les autorités schaffhousoises, qui ont mené deux auditions avant de réaliser que la personne entendue ne correspondait pas à la carte d'identité présentée. Les éléments constitutifs du faux dans les certificats sont dès lors réalisés, puisque le recourant, en utilisant la pièce d'identité d'un tiers pour franchir la frontière et se légitimer, a trompé les autorités. Sur le plan subjectif, l'usage de ce certificat a amélioré la situation du recourant dans la mesure où il lui a permis de rentrer sur le territoire suisse, où il ne disposait plus d'autorisation de séjour.
En tant que le jugement attaqué reconnaît le recourant coupable de l'infraction réprimée par l'art. 252 al. 3 CP, il ne viole donc pas le droit fédéral.
6.
Le recourant se plaint que la peine qui lui a été infligée, même réduite en appel, est extrêmement sévère.
6.1. Les règles générales régissant la fixation de la peine ont été rappelées dans les arrêts publiés aux ATF 141 IV 61 et 136 IV 55. Il y est renvoyé. S'agissant plus particulièrement de la peine à prononcer dans le cadre d'un trafic de stupéfiants, il est aussi fait référence aux arrêts 6B_107/2013 du 15 mai 2013 consid. 2.1.1 et 6B_921/2010 du 25 janvier 2011 consid. 2.1.
L'art. 47 CP confère un large pouvoir d'appréciation au juge. Par conséquent, celui-ci ne viole le droit fédéral en fixant la peine que s'il sort du cadre légal, s'il se fonde sur des critères étrangers à l'art. 47 CP, s'il omet de prendre en considération des éléments d'appréciation prévus par cette disposition ou, enfin, si la peine qu'il prononce est exagérément sévère ou clémente au point de constituer un abus du pouvoir d'appréciation (ATF 134 IV 17 consid. 2.1 p. 19 et les références citées).
6.2. Au moment des faits, la violation des art. 19 ch. 1 et 2 let. a LStup était sanctionnée d'une peine maximale de vingt ans de réclusion et d'un million de francs. Depuis le 1er janvier 2007, la peine maximale est de vingt ans de privation de liberté et de 360 jours-amende à 3'000 fr. au plus par jour, soit 1'080'000 fr. de peine pécuniaire. La peine privative de liberté de douze ans ne sort donc pas du cadre légal.
Les autorités cantonales ont retenu que la culpabilité du recourant était extrêmement lourde. Une quantité très importante de drogue (23 kg, respectivement 16,79 kg en quantité nette) avait été écoulée en l'espace de quelques mois, dans plusieurs cantons, et avait généré un bénéfice important, ce qui traduisait une activité criminelle très intense. Le recourant avait une position élevée dans la hiérarchie du trafic et n'avait pas hésité à impliquer des proches dans son activité. De façon générale, son attitude et ses actes dénotaient une absence totale de scrupules et il avait fait preuve d'un manque crasse de collaboration. La cour cantonale a également tenu compte de la récidive dans le même type d'infraction, du concours entre les diverses infractions et d'une absence totale de prise de conscience. Elle n'a par ailleurs pas ignoré les bons renseignements obtenus sur le comportement du recourant en prison. Sur la base de tous les éléments précités, la Cour d'appel a considéré que le Tribunal criminel avait été relativement clément, la peine de quatorze ans requise par le Ministère public lui apparaissant plus adéquate; elle a toutefois réduit la peine de quatorze à douze ans, au motif que le principe de la célérité avait été violé.
Il résulte de ce qui précède que la peine litigieuse, dûment motivée, a été fixée sur la base de critères pertinents et qu'on n'en discerne pas d'importants qui auraient été omis ou pris en considération à tort. Les éléments à prendre en compte ont par ailleurs été correctement évalués et ont abouti au prononcé d'une peine qui ne peut être qualifiée d'excessive. La sanction infligée ne viole donc pas le droit fédéral.
7.
Les considérants qui précèdent conduisent au rejet du recours, dans la mesure de sa recevabilité.
Comme les conclusions du recourant étaient vouées à l'échec, l'assistance judiciaire ne peut lui être accordée (art. 64 al. 1 LTF). Le recourant, qui succombe, supporte donc les frais de justice (art. 66 al. 1 LTF), dont le montant sera toutefois fixé en tenant compte de sa situation financière.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La requête d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'600 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 22 décembre 2015
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Mabillard